Symfony,twig表单,通过html表单提交动作路径

时间:2014-05-09 16:47:24

标签: php forms symfony twig

我想知道有没有一种方法可以通过链接到控制器中的操作的路径提交到数据库中?我在shoe.html.twig模板中有我的表单:

{ % if shoe is defined % }
<form action="{{ path('update_shoe', { 'shoeid' : shoe.id }) }}" method="POST">
   <input type="text" name="color" value="{{shoe.color}}"><br />
   <input type="text" name="brand" value="{{shoe.brand}}"><br />
   <input type="text" name="heel" value="{{shoe.heel}}"><br />
   <button type="submit" name="submit">Update</button>
</form>
{ % endif % }

路径以这种方式进入控制器:

/**
* @Route("/updateshoes/{shoe_id}", name="update_shoe")
* @Method("PUT")
* @Template()
*/
public function updateShoeAction($shoeid) {
      //find the shoe by its id
      //update into database
}

1 个答案:

答案 0 :(得分:1)

您似乎走在正确的轨道上,但您的代码唯一的问题是路线的定义。

而不是

/**
 * @Method("PUT")
 */

应该是

/**
 * @Method("POST")
 */

因为您的表单将POST到指定的URL。

否则,我建议你使用form component,因为它会为你提供一些很好的工具,比如表单验证和实体关联等。