получение аргументов в контроллере при вызове его из шаблона twig
Я пытаюсь получить доступ к переменным в моем контроллере, которые я установил в своей функции, вызывающей в twig. На самом деле это выглядит так:
{{ render(controller('AppBundle:Domain:show', {
'test': 'ok'
})) }}
И в моем контроллере это выглядит так:
public function showAction(Request $request, $test = null)
{
$test = $test ? $test : 'notOk';
var_dump($test); // result "notOK"
die;
}
Моя цель состоит в том, чтобы var_dump($test);
привело к "ок"
2
Author: Gopal Joshi, 2016-03-22
2 answers
Второй аргумент controller()
в Twig - это массив атрибутов запроса.
Https://github.com/symfony/twig-bridge/blob/master/Extension/HttpKernelExtension.php#L81
Так что:
{{ render(controller('AppBundle:Domain:show', {
'test': 'ok'
})) }}
Должно быть доступно:
public function showAction(Request $request)
{
return new Response($request->attributes->get('test'));
}
1
Author: eRIZ, 2016-03-22 13:42:42
Вы должны вернуть ответ от контроллера, var_dump не будет отображаться в вашем отрисованном шаблоне:
public function showAction(Request $request, $test = null)
{
$test = $test ? $test : 'notOk';
return new Response($test);
}
Кроме того, что ваш пример работает для меня так, как задумано
0
Author: Andras, 2016-03-22 14:04:27