首页 > 解决方案 > 从表单提交动作调用 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>

我的控制器类:

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 }

我没有错误,但我想知道如何完成它的语法,谢谢:)

标签: formssymfonycontrolleraction

解决方案


您的表单操作必须指向路由文件中定义的路径:

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

在您的控制器中,您可以使用该Request对象来获取表单的所有参数,例如:

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

我推荐你使用 symfony 的表单组件


推荐阅读