Symfony 7: во время рендеринга шаблона было создано исключение («Вызов неопределенного метода Twig\Extension\CoreExtension::dateConverter()»)

В одном проекте Symfony этот код ветки выдает ошибку:

{{ user.createdAt|format_datetime('full', 'none', locale='fr_FR') }}


// error : An exception has been thrown during the rendering of a template ("Call to undefined method Twig\Extension\CoreExtension::dateConverter()")

В другом проекте с этим кодом все нормально, и я не понимаю, где ошибка.

Я выполнил эти две команды:

composer require twig/intl-extra
composer require twig/extra-bundle

и теперь у меня есть эти версии:

  • ветка/между-экстра: 3.9.0
  • twig/extra-bundle: 3.9.0 (я также тестировал 3.8.0, но у меня та же ошибка.
  • ветка/веточка: 3.8.0

Я не знаю, как решить эту проблему.

Какую версию twig/twig вы сейчас используете? Кроме того, можете ли вы поделиться полной трассировкой стека?

Nico Haase 18.04.2024 14:24

twig/twig : 3.8.0 Я временно нашел решение, понизив версию twig/intl-extra до 3.8.0.

Cellophile 18.04.2024 14:26

Пожалуйста, проверьте, решает ли проблема использование самых последних пакетов — twig/twig версия 3.9 была выпущена несколько дней назад и содержит метод, который следует использовать.

Nico Haase 18.04.2024 14:47

@NicoHaase Вы имеете в виду встроенный без расширения intl-extra? В документации все еще упоминается иное.

DarkBee 18.04.2024 14:50

@DarkBee Я не понимаю твоего вопроса. github.com/twigphp/Twig/blob/v3.8.0/src/Extension/… не содержит отсутствующей функции dateConverter (согласно названию), а github.com/twigphp/Twig/blob /v3.9.0/src/Extension/… содержит этот метод

Nico Haase 18.04.2024 14:51

Если вы прокрутите вниз предоставленную ссылку на документацию (экран ), мой вопрос станет более понятным. Но, похоже, теперь они добавили этот фильтр в CoreExtensions. Мне просто интересно, устарела ли документация или нет.

DarkBee 18.04.2024 14:55
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
6
729
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

twig/intl-extra Пакет v3.9.0 неправильно принимает версии twig/twig 3.8.*. Это исправлено в версии 3.9.2, но версия 3.9.0 остается доступной и является предпочтительной версией.

symfony/ux-twig-component и symfony/stimulus-bundle требуют twig/twig 3.8. Как только пакеты Symfony UX будут обновлены для поддержки Twig 3.9, проблема должна устраниться сама собой.

Ожидая исправления несколько дней, временное решение:

composer require 'twig/intl-extra:~3.8.0'

Через несколько дней, когда Symfony UX обновится, запустите команду, чтобы удалить «взлом»:

composer require 'twig/intl-extra'

У меня та же проблема.

Поэтому я положил обратно

twig/extra-bundle, twig/intl-extra, twig/twig

пример функциональной версии с Symfony версии 7.0.6:

"twig/extra-bundle": "3.8.*", (3.8.0)

"twig/intl-extra": "3.8.*", (3.8.0)

"twig/twig": "^2.12|^3.0" (3.8.0)

composer require twig/extra-bundle:3.8.*composer require twig/intl-extra:3.8.*

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