我正在创建一个新项目,在我的主页设计中,如果用户是来宾,我需要显示2列,如果用户被记录,我需要显示3列。
好的,我正在尝试使用Twig上的embed
函数,但是我只能使它复制html代码而不使用'embed'Twig函数(这么糟糕的技术......)。
这是我的模板:
index.html.twig
{% extends 'base.html.twig' %}
{% block body %}
{% embed "home_columns" %}
{% if is_granted("IS_AUTHENTICATED_FULLY") %}
3 columns
{% else %}
2 columns
{% endif %}
{% endembed %}
{% endblock %}
home_columns.html.twig
{% block main_left_col %}
<aside id="left_column" class="col-md-2"> </aside>
{% endblock %}
{% block main_middle %}
<section id="last-plans" class="col-md-8"></section>
{% endblock %}
{% block main_right_col %}
<aside id="right_column" class="col-md-2"> </aside>
{% endblock %}
但它现在正在运作......
嵌入树枝功能是否是我想要的最佳方式?
答案 0 :(得分:0)
好的,真正的问题是代码的这一部分:
{% if is_granted("IS_AUTHENTICATED_FULLY") %}
3 columns
{% else %}
2 columns
{% block main_right_col %}{% endblock %}
{% endif %}
返回此错误:
An exception has been thrown during the compilation of a template
("Node "1" does not exist for Node "Twig_Node".") in
"HomeBundle:Default:index.html.twig".
似乎我无法检查用户是否从嵌入树枝模板中登录。
在视图中:
{% extends 'base.html.twig' %}
{% block body %}
{% embed "HomeBundle:Default:home_columns.html.twig" with { 'userIsLogged': is_granted("IS_AUTHENTICATED_FULLY") } %}
{% endembed %}
{% endblock %}
在嵌入式视图中:
{% if userIsLogged == true %}
3 columns
{% else %}
2 columns
{% endif %}
问候!