[Symfony 3] [Sonata Admin] проблема setTemplate - PullRequest
0 голосов
/ 29 октября 2018

Я сталкиваюсь с проблемой, когда хочу создать собственный шаблон для создания и редактирования представления моей сущности.

Unable to find template "AppBundle:Admin:Estate:edit.html.twig" (looked into: C:\wamp64\www\ibg\vendor\knplabs\knp-menu\src\Knp\Menu/Resources/views, C:\wamp64\www\ibg\vendor\symfony\symfony\src\Symfony\Bridge\Twig/Resources/views/Form).

Services.yml

app.admin.estate:
    class: AppBundle\Admin\EstateAdmin
    tags:
        - { name: sonata.admin, manager_type: orm, label: "Biens immobiliers" }
    arguments:
        - ~
        - AppBundle\Entity\Estate
        - ~
    calls:
         - [ setTemplate, [edit, AppBundle:Admin/Estate/edit.html.twig]]
    public: true

Я протестировал много синтаксиса для setTemplate, но всегда одно и то же сообщение

- [ setTemplate, [edit, AppBundle:Admin:Estate:edit.html.twig]]
- [ setTemplate, [edit, AppBundle:Admin/Estate:edit.html.twig]]
- [ setTemplate, [edit, AppBundle/Resources/views/Admin/Estate/edit.html.twig]]

или

The service "app.admin.estate.template_registry" has a dependency on a non-existent service "App/Admin/Estate:edit.html.twig".

Когда я использую

- [ setTemplate, [edit,"@App/Resources/views/Admin/Estate/edit.html.twig"]]
- [ setTemplate, [edit,"@App/Admin/Estate/edit.html.twig"]]
- [ setTemplate, [edit,"@App\Admin\Estate\edit.html.twig"]]

Путь моего файла ветки SRC \ AppBundle \ Resources \ вид \ Admin \ Estate \ edit.html.twig

Я не понимаю ... У меня есть старый проект с сонатой и symfony, и он хорошо работает

- [ setTemplate, [edit, AppBundle:Admin/Exemple:exemple.html.twig]]

Sonata admin версия 3.40.2

Symfony 3.4.17

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 24 ноября 2018

После того, как я немного ударился головой об этом, я обнаружил, что решение (хак?) Состоит в том, чтобы поставить префикс имени ветки другим символом @. E.g.:

- [ setTemplate, [edit,"@@App/Admin/Estate/edit.html.twig"]]

Это предотвращает ошибку «несуществующей службы» и позволяет правильно определить пространство имен (App) в Twig_Loader_Filesystem при определении местоположения ветки. Я не могу найти официальную документацию, чтобы объяснить это как официальную вещь, но пока она работает.

Для будущих пользователей это работает с Symfony 3.4.18, Sonata Admin 3.40.3 и Twig 2.5.0.

...