我实现了一个页面来创建实体的实例和与此相关的用户。我的问题是在提交后绑定请求。
现在我有了这个:
$formA = $this->createForm(new \MyApp\ABundle\Form\AddObjectForm());
$formB = $this->createForm(new \MyApp\UserBundle\Form\AddUserForm());
if ($request->getMethod() == 'POST')
{
$formA->bindRequest($request);
$formB->bindRequest($request);
if ($formA->isValid() && $formB->isValid())
{
}
// ...
}
使用 formA 和 formB 扩展 AbstractType 。但是,$formA->isValid()
自然会返回false。例如,如何“切断”请求?
答案 0 :(得分:7)
如果您的表单是相关的,需要立即处理和验证,请考虑使用embedded forms。否则,请为每个表单使用单独的操作。
如果您需要提供选择字段以从现有用户中选择用户,请考虑使用entity type field。
答案 1 :(得分:5)
我知道答案已经很长时间了,但也许如果有人在寻找它,这可能会有所帮助。
我有两种形式:user_form和company_form,并且提交发生在控制器的同一个功能中。我可以通过以下代码知道提交表单:
if ($request->getMethod() == 'POST') {
$data = $request->request->all();
if (isset($data['user_form'])) //This if means that the user_form has been submit.
{
company_form将通过else。