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

Why this not passing variable from view to controller?

在点击减号之前,只需写一个简短的答案。网络上没有那么多树枝建议。我是初学者。

查看

#\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);
}

您尚未在您的路线中为 $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 注释时,控制器应该 return 一个参数数组传递给视图。