Symfony 4 изменить имя формы по умолчанию - PullRequest
0 голосов
/ 08 ноября 2019

Я создаю 2 формы, не связанные ни с одним объектом в одном контроллере. Каждая форма имеет свою кнопку. Я никогда не перехожу к представленной функции второй формы. Я думаю, это потому, что 2 формы имеют одинаковое имя по умолчанию «форма». Проблема в том, как изменить имя формы? Ниже того, что я сделал

public function index(Request $request)
{
    $form1 = $this->createFormBuilder()
        ->add('sn', TextType::class, [
            'required' => false,
            ])
        ->add('search', SubmitType::class, ['label' => 'Search'])
        ->getform();
    $form1->handleRequest($request);
    if ($form1->isSubmitted() && $form1->isValid()) {
       //Do something

    }

    $form2 = $this->createFormBuilder();
    $form2->add('Agree', CheckboxType::class, [
                    'label'    => 'Agree',
                    'required' => false,
                ]);
    $form2->add('detail', SubmitType::class, ['label' => 'Detail']);
    $form2 = $form2->getForm();
    $form2->handleRequest($request);
    if ($form2->isSubmitted() && $form2->isValid()) {
        //Do something else
    }

    return $this->render('search/index.html.twig', [
        'form1' => $form1->createView(),
        'form2' => $form2->createView(),
    ]);
}

1 Ответ

1 голос
/ 08 ноября 2019

Если вы хотите изменить имя формы, используйте метод createNamed ():

$form1 = $this
    ->get('form.factory')
    ->createNamed('my_name', TextType::class, $task);

Вы можете даже полностью подавить имя, задав для него пустую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...