【发布时间】:2017-08-18 09:58:14
【问题描述】:
我有一个包含 3 个表单的页面,它们都是独立的(用户可以完成 0、1、2 或 3):
- 如果用户想被呼叫,第一个询问电话号码;
- 如果用户希望通过 SMS 联系第二个,则执行相同的操作;
- 如果用户想添加评论,则使用第三个
处理这种情况的最佳方法是什么?
我是否应该在我的控制器中重复我的代码三遍?
public function myPageAction(Request $request)
{
// First one
$form = $this->createFormBuilder()
->add...
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid() ) {
// some code
}
// Second one
$form2 = $this->createFormBuilder()
->add...
->getForm();
$form2->handleRequest($request);
if ($form2->isSubmitted() && $form2->isValid() ) {
// some code
}
// Third one
$form3 = $this->createFormBuilder()
->add...
->getForm();
$form3->handleRequest($request);
if ($form3->isSubmitted() && $form3->isValid() ) {
// some code
}
}
而 在 Twig 中:
我有第一个模式=用户点击并弹出一个带有表单的模式:
{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}
这个也一样,其他模式:
{{ form_start(form2) }}
{{ form_widget(form2) }}
{{ form_end(form2) }}
第三个在页面底部:
{{ form_start(form3) }}
{{ form_widget(form3) }}
{{ form_end(form3) }}
我认为这是很多代码,我重复自己太多,我可以“优化”什么? 我的第一种和第二种形式相同的事实,我可以将它们“重新组合”成一个吗?我可以创建一个“PhoneType”表单,但我别无选择,只能在我的控制器中调用它两次?
对不起,如果这里有很多问题,但我可以这样总结:在同一页面上处理多个表单的最佳做法是什么?(在我的控制器和我的视图中)
【问题讨论】:
标签: forms symfony controller twig