为什么不将变量从视图传递到控制器?

时间:2015-01-08 22:08:56

标签: symfony twig

在点击减号之前,请写一个简短的衣服。在网上没有那么多枝条建议。 #39;是初学者。

查看

#\src\BookBundle\Resources\views\Default\index.html.twig
<a href="{{ path('add',{'name':'John','surname':'Smith'})}}">Add John to DB</a>

控制器

#\src\BookBundle\Controller\DefaultController.php
 /**
 * @Route("/add.html", name="add")
 * @Template()
 */

public function addAction($name,$surname)
{
    //some db code
    return new Response('New name '.$name);
}

1 个答案:

答案 0 :(得分:2)

您尚未在路线中为$ name和$ surname定义任何slug占位符,因此path('add',{'name':'John','surname':'Smith'})会将数据附加到查询字符串。像/add.html?name=John&surname=Smith这样的东西。因此,您可以使用$request->query->get('name');在控制器中获取这些参数。见http://symfony.com/doc/current/book/controller.html#the-request-as-a-controller-argument

请记住,当您使用@Template注释时,控制器应返回一组参数以传递给视图。