ユーザーによってさまざまなレイアウトがあります。これにより、次のエラーが発生します:
"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
も持っています。この場合に使用しますが、回答の1つで提案されているように、読みやすいかもしれません。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" %}