在 symfony 4 中以一种形式进行不同的操作
making different action in a form in symfony 4
我正在尝试使用预订系统制作一个 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();
请问如何根据表单中的选择执行不同的操作?
您必须扩展您的控制器。使路由可用于 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.
我正在尝试使用预订系统制作一个 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();
请问如何根据表单中的选择执行不同的操作?
您必须扩展您的控制器。使路由可用于 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.