我用树枝时出错了

时间:2014-10-15 18:04:57

标签: symfony twig

我正在使用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“。)。

3 个答案:

答案 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}