gpt4 book ai didi

php - Symfony:一页上的多个表单

转载 作者:行者123 更新时间:2023-12-02 17:19:10 26 4
gpt4 key购买 nike

我遇到了以下问题。我在一页上有 3 个表格(将来可能会更多)。当我提交它们时.. 没有任何反应(在数据库中插入数据)并且其他 2 个表单填写了它们的字段。可能是因为它们都有一个“名称”字段?我该如何解决这个问题.. 以便每个表单都有自己的“功能”并且不会干扰其他表单。

我的 Twig :

<div class="box">
<h2>Form1</h2>
{{ form_start(form1) }}
{{ form_widget(form1) }}
{{ form_end(form1) }}
</div>
<div class="box">
<h2>Form2</h2>
{{ form_start(form2) }}
{{ form_widget(form2) }}
{{ form_end(form2) }}
</div>
<div class="box">
<h2>Form3</h2>
{{ form_start(form3) }}
{{ form_widget(form3) }}
{{ form_end(form3) }}
</div>

我的 Controller :

if ($request->isMethod('POST')) {

$form1->handleRequest($request);
$form2->handleRequest($request);
$form3->handleRequest($request);

if ($form1->isSubmitted() && $form1->isValid() && $request->request->has('form1')) {
// Do data insert

//Return to page
} else if ($form2->isSubmitted() && $form2->isValid() && $request->request->has('form2')) {
// Do data insert

//Return to page
} else if ($form3->isSubmitted() && $form3->isValid() && $request->request->has('form2')) {
// Do data insert

//Return to page
}
}

最佳答案

我认为您不需要将它们全部放在同一个 if 中。您可以做的是像这样将它们分开:

public function whateverAction(Request $request) {
$form1 = $this->createForm(...);
$form2 = $this->createForm(...);
$form3 = $this->createForm(...);

$form1->handleRequest($request);
if ($form1->isSubmitted() && $form1->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($obj1); //of whatever the entity object you're using to create the form1 form
$em->flush();
}

$form2->handleRequest($request);
if ($form2->isSubmitted() && $form2->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($obj2); //of whatever the entity object you're using to create the form2 form
$em->flush();
}

$form3->handleRequest($request);
if ($form3->isSubmitted() && $form3->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($obj3); //of whatever the entity object you're using to create the form3 form
$em->flush();
}

return $this->render('...', [
'form1'=>$form1->createView(),
'form2'=>$form2->createView(),
'form3'=>$form3->createView(),
]);
}

关于php - Symfony:一页上的多个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44204375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com