我想测试控制器响应是否定义如下:
{% if {{ render(path('controller_url', { 'code': 'code' } )) }} is defined %}
<div>
phone : {{ render(path('footer_params', { 'code': 'telephone' } )) }}
</div>
{% endif %}
但是我收到了这个错误:
Twig_Error_Syntax:哈希键必须是带引号的字符串,数字,名称或括在括号中的表达式(意外标记&#34;标点符号&#34;值&#34; {&#34; in& #34; :: footer.html.twig&#34;第10行。
我试图将渲染放在()之间,但我仍然得到同样的错误。
这是我的控制者:
/**
* @Route("/footer_params/{code}", name="footer_params", defaults={"code"=null})
*
* @Template()
*/
public function footerParamsAction($code)
{
$sParams = $this->getWebService('get_config_param', array('code' => $code));
if ( !isset($sParams) )
{
throw new AccessDeniedException();
}
foreach ($sParams as $key => $value)
{
return $this->render('Bundle:Example:footerParams.html.twig',array('params' => $value));
}
}
$ value包含数字。
这就是观点:
{{ params }}
答案 0 :(得分:1)
为什么不使用基本方法进行测试code
?
例如:
{% if code is defined %}
some code
{% endif %}
修改
-Controller
/**
* @Route("/footer_params/{code}", name="footer_params", defaults={"code"=null})
*
* @Template()
*/
public function footerParamsAction($code)
{
$sParams = $this->getWebService('get_config_param', array('code' => $code));
if (!isset($sParams)) {
throw new AccessDeniedException();
}
return $this->render('Bundle:Example:footerParams.html.twig', [
'params' => $sParams
]);
}
- 查看
您只需使用params内容: E.g:
{% if params.phone %}
phone : {{ params.phone }}
{% endif %}
/.../