Вызвать действие контроллера Symfony из действия отправки формы

#forms #symfony #controller #action

#формы #symfony #контроллер #Экшен

Вопрос:

здравствуйте, я новичок в Symfony 3.4, у меня есть форма в моем файле html.twig, и я хочу, чтобы при ее отправке я получал значения ее входных данных и передавал их действию в моем классе контроллера, чтобы вставить их в базу данных ,

это форма (reserver.html.twig) :

 <h1>reserver</h1>
<form action="" method ="post">
   <input type="text" name="seat">
   <input type="text" name="type">
   <input type="text" name="quantity">
   <input type="submit">
</form>
  

мой класс conroller :

 class reservationController extends Controller
{
    public function CreateReservationtAction(String seat ,String type ,String Quantity){      
        //code to insert into database
        return $this->render("pages/reserver.html.twig");
       }
}
  

это мой файл маршрутизации :

 techevent_reservation:
    path:     /res
    defaults: { _controller: techeventBundle:reservation:CreateReservation }
  

у меня пока нет ошибок, я хочу знать синтаксис, как это будет сделано, и спасибо 🙂

Комментарии:

1. проверьте это symfony.com/doc/3.3/forms.html

2. нет, это для работы с symfony formbuilder, здесь у меня уже есть HTML-форма

Ответ №1:

Ваше действие формы должно указывать на путь, определенный в вашем файле маршрутизации:

 <form action="{{ path('techevent_reservation') }}" method ="post">
  

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

 public function CreateReservationtAction(Request $request){
     $seat = $request->request->get('seat');
     $type = $request->request->get('type');
     ...    
}
  

Я рекомендую вам использовать компонент формы symfony.