делать разные действия в форме в Symfony 4 - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь создать форму symfony с системой бронирования, пользователь выбирает количество билетов в моей первой форме, затем он будет перенаправлен на другой маршрут, если он выберет один билет или два билета.

Вот мой контроллер:

public function home(Request $request, )
{
    $form = $this->createFormBuilder()
                 ->add('numberOfTickets', ChoiceType::class, [
                     'attr' => [
                         'class' => 'form-control'
                     ],
                     'choices' => [
                         '1' => 1,
                         '2' => 2,
                         '3' => 3,
                         '4' => 4,
                         '5' => 5,
                     ]
                 ])

                 ->setAction($this->generateUrl('ticket'))                     ->getForm();

Как я могу сделать другое действие в зависимости от выбора в моей форме, пожалуйста?

1 Ответ

0 голосов
/ 08 октября 2018

Вы должны расширить свой контроллер.Сделать маршрут доступным для запросов GET и POST.

public function home(Request $request, )
{
    $form = $this->createFormBuilder()
                 ->add('numberOfTickets', ChoiceType::class, [
                     'attr' => [
                         'class' => 'form-control'
                     ],
                     'choices' => [
                         '1' => 1,
                         '2' => 2,
                         '3' => 3,
                         '4' => 4,
                         '5' => 5,
                     ]
                 ])

                 ->setAction($this->generateUrl('ticket'))->getForm();

    $form->handleRequest($request);

    if($form->isSubmitted() && $form->isValid()){
         $formData = $form->getData();
         switch($formData['numberOfTickets']){
             case 1:
                   return $this->redirectToRoute('routeForOneTicket');
    }

}

return $this->render('template', ['form' => $form->createView()]);

Не очень красиво, но это способ.Я не знаю вашу заявку, но стоит ли тратить время на изучение классов: https://symfony.com/doc/current/forms.html#creating-form-classes.

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