Symfony2 - несколько форм в одном действии - PullRequest
4 голосов
/ 03 ноября 2011

Я реализовал страницу, чтобы создать экземпляр сущности и пользователя, связанных с этим. Моя проблема - связать запрос после отправки.

Теперь у меня есть это:

$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 extends AbstractType . Но, естественно, $formA->isValid() возвращает false. Как я могу сделать, чтобы "вырезать" запрос к примеру?

Ответы [ 2 ]

7 голосов
/ 03 ноября 2011

Если ваши формы связаны и требуют одновременной обработки и проверки, рассмотрите возможность использования встроенных форм . В противном случае используйте отдельное действие для каждой формы.

Если вам нужно предоставить поле выбора для выбора пользователя из существующих, рассмотрите возможность использования поля типа объекта .

5 голосов
/ 17 февраля 2013

Я знаю, что прошло много времени с момента ответа, но, возможно, если кто-то его ищет, это может быть полезно.

У меня есть две формы: 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 будет проходить через остальное.

...