从树枝模板调用时在控制器中获取参数
getting arguments in controller when calling it from twig template
我正在尝试访问我在调用 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);
导致'ok'
Twig 中 controller()
的第二个参数是一个请求属性数组。
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'));
}
您必须 return 来自控制器的响应,var_dump 不会显示在您呈现的模板中:
public function showAction(Request $request, $test = null)
{
$test = $test ? $test : 'notOk';
return new Response($test);
}
除此之外,您的示例按预期对我有效
我正在尝试访问我在调用 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);
导致'ok'
Twig 中 controller()
的第二个参数是一个请求属性数组。
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'));
}
您必须 return 来自控制器的响应,var_dump 不会显示在您呈现的模板中:
public function showAction(Request $request, $test = null)
{
$test = $test ? $test : 'notOk';
return new Response($test);
}
除此之外,您的示例按预期对我有效