EasyAdmin с использованием собственных шаблонов Проблема

Я пытаюсь переопределить «новый» шаблон для EasyAdmin, но система игнорирует код шаблона. Вот соответствующая часть easy_admin.yaml.

entities:
       # List the entity class name you want to manage
      Places:
          class: App\Entity\Places
          templates:
              list: 'asdfasdf'

Как видите, значение атрибута списка неверно, но система игнорирует его и работает без ошибок, и я не могу переопределить шаблон.

У вас есть предложение?


person bahadir arslan    schedule 13.03.2019    source источник
comment
Можете ли вы предоставить больше информации? Как вы пытаетесь переопределить его, куда вы помещаете свой новый шаблон?   -  person Eugene Ruban    schedule 13.03.2019
comment
На самом деле я помещаю шаблон, папку шаблонов и пытаюсь вызвать ее имя, как описано в symfony.com/doc/master/bundles/EasyAdminBundle/book/, но, как вы можете видеть выше, система кода игнорирует раздел шаблонов, поэтому я пишу случайные символы, и это не дает никаких ошибка, этот шаблон не может быть найден.   -  person bahadir arslan    schedule 13.03.2019
comment
Только что протестировано сейчас на моем проекте. Со случайными символами в template у меня тоже не возникает ошибок. Но с правильным путем - работает нормально. Например, мой шаблон находится в templates/admin/dashboard.html.twig, а list: 'admin/dashboard.html.twig' работает как положено.   -  person Eugene Ruban    schedule 13.03.2019
comment
Дай мне попробовать. Я тестирую случайные символы, потому что я не мог заставить шаблоны работать, поэтому я подумал, что есть проблема.   -  person bahadir arslan    schedule 13.03.2019
comment
Да, ты прав. Я не смог найти достаточно информации о структуре каталогов шаблона, поэтому я поместил свой шаблон в корень папки шаблонов и попытался вызвать файл yaml через структуру папок. Но когда я попробовал, как вы сказали, это сработало.   -  person bahadir arslan    schedule 13.03.2019
comment
Рад быть полезным. Добавлю как ответ.   -  person Eugene Ruban    schedule 13.03.2019


Ответы (2)


Итак, как я уже упоминал в комментарии, easyadmin почему-то не выдает никаких ошибок, если указанный шаблон не существует. Итак, вам просто нужно поместить новый шаблон в папку templates, например, templates/admin/listPlaces.html.twig, а затем указать правильный путь в файле конфигурации easyadmin, например:

entities:
    Places:
        class: App\Entity\Places
        templates:
             list: 'admin/listPlaces.html.twig'
person Eugene Ruban    schedule 13.03.2019

Если вы используете EasyAdmin 3.x, для этого вы можете перезаписать определенный шаблон, указав его в контроллере вашего объекта, или вы можете создать свои собственные структуры папок, как это делает symfony.

В этом примере я перезаписываю только шаблон редактирования для моего объекта «ученик», если вы хотите изменить все изменения вашего проекта, вы должны сделать это, создав структуру папок, как это делает symfony.

public function configureCrud(): Crud
{
    return Crud::new()
       
        ->overrideTemplate('crud/edit', 'studient/edit.html.twig')
    ;
}

Вы даже можете комбинировать оба метода. Предположим, что в дополнение к изменению только шаблона 'edit' студента вы хотите изменить способ, которым easyadmin отображает быстрые сообщения, для этого вам нужно только создать эту структуру в папке шаблонов: templates\bundles\EasyAdminBundles\flash_messages.html.twig

Оставляю ссылку с документацией для EasyAdmin 3.x overriding- шаблоны

person Jaime Roman    schedule 18.01.2021