【发布时间】:2023-03-11 09:19:01
【问题描述】:
我希望模板在用户未登录时继承基本模板,在用户登录时继承其他模板。
我尝试了几件事。显而易见的尝试之一是:
{% extends app.user == null ? 'base.html.twig' : 'protected.html.twig' %}
其他尝试:
{% extends app.user ? 'protected.html.twig' : 'base.html.twig' %}
等等......没有任何作用。始终使用 base.html.twig。
当我显示 {{ app.user }} 值时,会显示正确的值(用户名,如果登录或未登录分别为空)
有什么想法吗?
编辑:
这是我需要有条件的完整模板,具体取决于用户是否登录。
{% extends app.user ? 'protected.html.twig' : 'base.html.twig' %}
{% block title %}Inicio{% endblock %}
{% block conditional %}
<style>
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>
<div class="example-wrapper">
<h1>Hello {{ controller_name }}! ✅</h1>
This friendly message is coming from:
<ul>
<li>Your controller at <code><a href="{{ 'src/Controller/DefaultController.php'|file_link(0) }}">src/Controller/DefaultController.php</a></code></li>
<li>Your template at <code><a href="{{ 'templates/default/index.html.twig'|file_link(0) }}">templates/default/index.html.twig</a></code></li>
</ul>
</div>
{% endblock %}
{% if app.user %}
{% block protected_body %}
{{ block('conditional') }}
{% endblock %}
{% else %}
{% block body %}
{{ block('conditional') }}
{% endblock %}
{% endif %}
【问题讨论】: