Symfony 4, как установить глобальный параметр для использования в ветке - PullRequest
0 голосов
/ 14 февраля 2019

После того, как я могу установить параметр из моего контроллера, к которому можно получить доступ в ветке, чтобы определить, находится ли пользователь в области администратора или нет, отображать дополнительное меню.

Так что, возможно, у меня естьКонтроллер администратора и внутри подрядчика я установил для параметра bool значение true как admin:

$this->isAdminArea = true;

Тогда в шаблоне мне нужно if:

{% if isAdminArea %}

{% endif %}

И другие контроллеры либо установят $this-> isAdminArea = false или каким-то образом для него установлено значение по умолчанию false.

Как мне этого добиться?

1 Ответ

0 голосов
/ 15 февраля 2019

Вы можете определить глобальную переменную ветки в конфигурации, как указано в Документация Symfony :

# config/packages/twig.yaml
twig:
    # ...
    globals:
        isAdminArea: false

И затем переопределить ее в вашем контроллере, когда она должна быть true.

В вашем конкретном случае также можно просто установить значение по умолчанию на месте, используя default или определенные Фильтры Twig

{% if isAdminArea|default(false) %}

{% endif %}
{% if isAdminArea is defined %}

{% endif %}

В последующем случае не имеет значения, какое значение вы установите в своем административном контроллере, даже false выполнит эту работу, что может быть нелогичным.

Использование фильтраимеет преимущество, заключающееся в том, что все связанные биты хранятся в одном месте, поэтому, если у вас нет одинаковой проверки в нескольких шаблонах, ее следует считать более удобочитаемым / поддерживаемым решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...