Я создал собственный шаблон, который пытаюсь визуализировать с помощью контроллера. Я поместил шаблон в src/MyCompany/AppBundle/Contact/contact.html.twig и использую эту строку, чтобы попытаться ввести его:
return $this->render('AppBundle:Contact:contact.html.twig', array(
'form' => $form->createView()
));
Но я получаю это InvalidArgumentException при загрузке контроллера:
Unable to find template "AppBundle:Contact:contact.html.twig" (looked into: /usr/src/app/app/Resources/views, /usr/src/app/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form, /usr/src/app/vendor/knplabs/knp-menu/src/Knp/Menu/Resources/views).
Есть ли простой способ узнать, как я должен ссылаться на этот шаблон?






По умолчанию Symfony будет искать шаблоны в каталогах Resources/views ваших пакетов. Если вам нужен собственный путь, например src/MyCompany/AppBundle/Contact, вам придется вручную зарегистрировать его в конфигурации twig в config.yml:
twig:
# ...
paths:
'%kernel.root_dir%/src/MyCompany/AppBundle/Contact': contact_path
а затем используйте это так:
return $this->render('contact_path:contact.html.twig', array(
'form' => $form->createView()
));
Документация здесь
В качестве предложения используйте синтаксис Twig
@contact_path/contact.html.twigдля имен шаблонов Twig, тогда вы не будете зависеть от компонентаsymfony/templatingи дополнительных слоев для его анализа.