Twig использует константу в качестве атрибута - PullRequest
0 голосов
/ 10 апреля 2020

Я хочу передать константу в качестве атрибута в шаблоне веточки.

Код выглядит так: {% if presenter.hasErrors(constant('Admin\App\ViewPresenters\EditorPresenter::FORM_ERRORS') )%} и выдает ошибку Message: Argument 1 passed to Admin\App\ViewPresenters::hasErrors() must be of the type string, null given, called in /vendor/twig/twig/src/Extension/CoreExtension.php on line 1527, насколько я понимаю, веточка не распознала, что это константа. Есть ли ват, чтобы передать константу в ветке в качестве аргумента?

1 Ответ

2 голосов
/ 10 апреля 2020

В twig обратная коса sh используется для экранирования специальных символов, например, {{ '\'' }} выведет '. Таким образом, чтобы создать литеральную обратную сторону sh в twig, вам необходимо «экранировать» обратную сторону sh

{{ constant('Admin\\App\\ViewPresenters\\EditPresenter::FORM_ERRORS') }}

Вы можете увидеть разницу в исходном коде twigfiddle:

{{ constant('Admin\App\ViewPresenters\EditPresenter::FORM_ERRORS') }}

PHP источник

echo twig_escape_filter($this->env, twig_constant("AdminAppViewPresentersEditorPresenter::FORM_ERRORS"), "html", null, true);
{{ constant('Admin\\App\\ViewPresenters\\EditorPresenter::FORM_ERRORS') }}

PHP источник

echo twig_escape_filter($this->env, twig_constant("Admin\\App\\ViewPresenters\\EditorPresenter::FORM_ERRORS"), "html", null, true);

демо

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