我有不同的布局,具体取决于用户。这会触发以下错误:
"Multiple extends tags are forbidden"
。如何根据用户的角色设法使用不同的布局?
{% if is_granted('ROLE_USER_ONE') %}
{% extends "AcmeUserBundle::layout_user_one.html.twig" %}
{% elseif is_granted('ROLE_USER_TWO') %}
{% extends "AcmeUserBundle::layout_user_two.html.twig" %}
{% endif %}
编辑
这是答案。我将使用 3 个用户的情况,以防人们想知道如何做到这一点。在这种情况下,如果有人想知道该声明,admin
也有userOne
特权。我在这种情况下使用,但正如其中一个答案所建议的那样,可能更具可读性。userTwo
else
Conditional Inheritance
Dynamic Inheritance
{% set admin = false %}
{% set userOne = false %}
{% set userTwo = false %}
{% if is_granted('ROLE_ADMIN') %}
{% set admin = true %}
{% else %}
{% if is_granted('ROLE_USER_ONE') %}
{% set userOne = true %}
{% elseif is_granted('ROLE_USER_TWO') %}
{% set userTwo = true %}
{% endif %}
{% endif %}
{% extends admin ? "AcmeUserBundle::layout_admin.html.twig" : userTwo ? "AcmeUserBundle::layout_user_two.html.twig" : "AcmeUserBundle::layout_user_one.html.twig" %}