Ошибка symfony на странице входа - Предупреждение: gettext ()

Когда я перехожу на свою страницу, войдите в localhost:

mylocal.com/app_dev.php/login, у меня такая ошибка:

Ошибка symfony на странице входа - Предупреждение: gettext ()

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)

Можно ли предоставить нам полную трассировку исключения? Компонент symfony / translation отсутствует.

Alexandre Tranchant 12.03.2018 22:16

@AlexandreT У меня та же проблема, и установка компонента symfony / translation ничего не меняет.

Dado 17.04.2018 14:43

@dado: Решает ли приведенный ниже ответ вашу проблему?

Alexandre Tranchant 17.04.2018 20:02

@AlexandreT Да, в моем composer.json есть "веточка / расширения": "^ 1.5", и после отключения "Twig_Extensions_Extension_I18n" в моей конфигурации я смог визуализировать свою форму без каких-либо проблем, потому что все снова работает нормально. И я надеюсь, что мой пост поможет кому-то с такими же проблемами исправить это быстрее.

Dado 18.04.2018 10:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
4
497
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Я считаю, что это из-за ваших переводов. Twig ожидает, что {{}} будет переменной php, а не строкой. Попробуй это:

{% trans %}security.login.username{% endtrans %}

результат на странице входа: <label for = "username"> security.login.username '</label>

Greg 11.03.2018 22:36

внимательно посмотрите на имя, в том, что вы прокомментировали, кажется, есть лишняя одинарная кавычка '

MEmerson 16.03.2018 19:58

Убедитесь, что symfony/twig-bridge установлен

Нет в моем composer.json, я пытаюсь его добавить?

Greg 13.03.2018 16:00

@ Грег, да, конечно. composer require symfony/twig-bridge

Denis Alimov 13.03.2018 16:23
Ответ принят как подходящий

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

http://twig-extensions.readthedocs.io/en/latest/i18n.html

Привет ПараСку, попробую.

Greg 13.03.2018 16:45
<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 }

Другие вопросы по теме