我正在使用Symfony2和twig,当我尝试检查var是否为null时,我遇到了问题。
这是代码:
$name=null;
if($session->get('foo')) {
$name=$session->get('foo');
}
return $this->render('AcmeIndexBundle:Default:index.html.twig', array('name' => $name));
和树枝代码:
{% extends '::base.html.twig' %}
{% if name is defined %}
{# do something #}
{% endif %}
{% block cuerpo %}
{# labels html}
{% endblock %}
错误是:在编译模板期间抛出了异常(“AcmeIndexBundle:Default:index.html.twig”中的节点“Twig_Node”。“”中不存在“节点”1“。)。
答案 0 :(得分:0)
你可以使用{%if name is not null%}但代码有效
答案 1 :(得分:0)
你在哪里/如何在会话中设置foo? 我相信问题可能是永远不会设置foo并且你将一个空值传递给twig文件,如果foo在会话中为空,你应该处理异常 要么 您可能无法正确访问名称值。
或者可以使用以下方式直接访问会话:
// In a controller
$session = $this->get('session');
$session->set('name', array(
'foo' => 'value',
));
// In Twig
{% set name = app.session.get('name') %}
然后
{% if name is defined %}
{# do something #}
{% endif %}
的src:Accessing session from TWIG template
访问twig中的变量/参数会让人感到困惑,因为有一百万种不同的方法可以解决这个问题。
答案 2 :(得分:0)
您的Twig代码中有错误。缺少第二个哈希(#)符号。
{# labels html}