Когда я перехожу на свою страницу, войдите в localhost:
mylocal.com/app_dev.php/login, у меня такая ошибка:
An exception has been thrown during the rendering of a template ("Warning: gettext() expects exactly 1 parameter, 3 given").
На этой строке шаблона:
<div class = "form-group">
<input type = "text" id = "username" name = "_username" value = "{{ last_username }}" required = "required" placeholder = "{{ 'security.login.username'|trans }}" class = "form-control" />
</div>
Мой composer.json:
"require": {
"php": ">=7.1",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"friendsofsymfony/jsrouting-bundle": "^1.6",
"friendsofsymfony/user-bundle": "2.0.2",
"incenteev/composer-parameter-handler": "^2.0",
"knplabs/doctrine-behaviors": "^1.4",
"sensio/distribution-bundle": "^5.0.19",
"sensio/framework-extra-bundle": "^5.0.0",
"symfony/assetic-bundle": "^2.8",
"symfony/monolog-bundle": "^3.1.0",
"symfony/polyfill-apcu": "^1.0",
"symfony/swiftmailer-bundle": "^2.6.4",
"symfony/symfony": "3.4.*",
"twig/twig": "^2.0",
"twig/extensions": "^1.5"
},
Моя версия:
php: PHP 7.2.2-3 + ubuntu16.04.1 + deb.sury.org + 1 (cli) (построено: 6 февраля 2018 г. 16:11:23) (NTS)
apache: Версия сервера: Apache / 2.4.18 (Ubuntu)
@AlexandreT У меня та же проблема, и установка компонента symfony / translation ничего не меняет.
@dado: Решает ли приведенный ниже ответ вашу проблему?
@AlexandreT Да, в моем composer.json есть "веточка / расширения": "^ 1.5", и после отключения "Twig_Extensions_Extension_I18n" в моей конфигурации я смог визуализировать свою форму без каких-либо проблем, потому что все снова работает нормально. И я надеюсь, что мой пост поможет кому-то с такими же проблемами исправить это быстрее.






Я считаю, что это из-за ваших переводов. Twig ожидает, что {{}} будет переменной php, а не строкой. Попробуй это:
{% trans %}security.login.username{% endtrans %}
результат на странице входа: <label for = "username"> security.login.username '</label>
внимательно посмотрите на имя, в том, что вы прокомментировали, кажется, есть лишняя одинарная кавычка '
Убедитесь, что symfony/twig-bridge установлен
Нет в моем composer.json, я пытаюсь его добавить?
@ Грег, да, конечно. composer require symfony/twig-bridge
Если вы используете расширения Twig, они могут исходить из расширения i18n. Поэтому, чтобы быстро это исправить, отключите расширение i18n.
http://twig-extensions.readthedocs.io/en/latest/i18n.html
Привет ПараСку, попробую.
<input type = "text" id = "username" name = "_username" value = "{{ last_username }}" required = "required" placeholder = "{{ 'security.login.username'|trans }}" class = "form-control" />
Я не уверен, почему используются кавычки для security.login.username, похоже, вы пытаетесь получить какое-то значение от объекта безопасности, если да, попробуйте удалить такие кавычки:
<input type = "text" id = "username" name = "_username" value = "{{ last_username }}" required = "required" placeholder = "{{ security.login.username|trans }}" class = "form-control" />
Если у кого-то такая же проблема с Возникло исключение во время рендеринга шаблона («Предупреждение: gettext () ожидает ровно 1 параметр, 3 заданных»)., проверьте свою конфигурацию на наличие зарегистрированного расширения twig и удалите его:
twig.extension.i18n:
class: Twig_Extensions_Extension_I18n
tags:
- { name: twig.extension }
Можно ли предоставить нам полную трассировку исключения? Компонент symfony / translation отсутствует.