2015-01-08 2 views
0

Befeore вы нажимаете минус, просто напишите короткий ответ. Не так много советов по веточке в Интернете. Я новичок.Почему это не пропускает переменную от представления к контроллеру?

Посмотреть

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

Возможный дубликат [twig: передать переменные из представления в контроллер] (http://stackoverflow.com/questions/17323231/twig-pass-variables-from-view-to-controller) – Buggabill

ответ

2

Вы не definited любой пробкового заполнитель для $ имени и фамилии $ в маршруте, так 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 контроллер должен вернуть массив параметров для передачи в представление.

Смежные вопросы