#php #symfony #twig
#php #symfony #twig
Вопрос:
Когда я обновился с Symfony 3.4 до Symfony 4 и отобразил систему в браузере, появилась следующая ошибка.
Изменение каталога views — это большая работа, и я не хочу делать это как можно чаще. Есть ли какой-нибудь хороший способ?
Код ошибки
Unable to find template "AhiSpAdminBundle:Security:login.html.twig" (looked into: /home/vagrant/Symfony/src/Sp/AppBundle/Resources/views, /home/vagrant/Symfony/templates, /home/vagrant/Symfony/vendor/symfony/twig-bridge/Resources/views/Form).
Код
framework.yaml
framework:
templating:
engines: ['twig']
twig.yaml
twig:
paths: ['%kernel.project_dir%/src/App/AppBundle/Resources/views']
debug: '%kernel.debug%'
strict_variables: '%kernel.debug%'
SecurityController.php
/**
* @Route("/login")
* @Template("SpAppBundle:Security:login.html.twig")
*/
public function loginAction(Request $request)
{
Версия
Symfony 4.0
PHP 7.3
twig / twig 2.14
twig / templating 4.0
sensio / framework-дополнительный пакет 5.2.4
Комментарии:
1. Привет, вы пытались очистить кэш: bin / console cache: очистить?
2. Symfony отошел от обозначения двоеточия для указания шаблонов twig, т.е. SpAppBundle:Security:login.html.twig должно быть что-то вроде @SpApp/Security/login.html.twig. bin/console debug:twig подтвердит правильное пространство имен twig для использования. Конечно, преобразование путей к вашим шаблонам также требует немалой работы. Вы можете попробовать добавить путь к ветке. Прошло некоторое время с тех пор, как я это сделал. Рассмотрите возможность обновления вашего вопроса списком пространств имен twig, созданных debug:twig
3. @GrenierJ Спасибо за ваш комментарий. Конечно, я передал его.
4. @Cerad Спасибо за ваш комментарий. Благодаря простому для понимания объяснению я смог решить проблему.
Ответ №1:
Установка пути к twig.yaml и сопутствующие изменения сработали.
twig.yaml
twig:
paths:
'%kernel.project_dir%/src/Sp/AppBundle/Resources/views': SpApp
Контроллер
/**
* @Route("/login")
* @Template("@SpApp/Security/login.html.twig")
*/
public function loginAction(Request $request)
{
~.html.twig
{% extends '@SpApp/layout.html.twig' %}