2017-02-11 4 views
1

Я борюсь с движком шаблонов symfony/sonata ... обычно я знаком с наследованием и объектно-ориентированным дизайном, но я этого не понимаю.Понимание шаблона механизма сонаты/twig

Моя цель - переопределить DoctrineORMAdminBundle: CRUD: show_orm_one_to_many.html.twig, потому что я верю, что список для функции show в моем классе администратора отображается там. Мне это нужно, потому что я хочу показать свои данные не только в обычном списке, как соната делает это сейчас. Я только хочу переопределить это для функции show одного явного администратора в моем пакете и не вообще!

Согласно документации сонаты, я только способен переопределить общий шаблон «SonataAdminBundle: CRUD: base_show.html.twig», вводя собственную унаследованную версию их моей службы

- [ setTemplate, [show, AcmeBundle:TestAdmin:show.html.twig]] 

Проблема , базовый шаблон включает/включает в себя множество других шаблонов, к которым иногда обращаются объектные функции, введенные в шаблон php.

Как я могу получить доступ к/переопределить

DoctrineORMAdminBundle:CRUD:show_orm_one_to_many.html.twig 

так, что мина версия используется вместо поставщиков одного? Я должен переопределить все шаблоны цепочки?

DoctrineORMAdminBundle: CRUD: show_orm_one_to_many.html.twig расширяет SonataAdminBundle: CRUD: base_show_field.html.twig

Но я не знаю, как SonataAdminBundle: CRUD: base_show_field.html.twig приходит к SonataAdminBundle: CRUD: base_show .html.twig. Я не могу найти подходящий код.

Благодаря

ответ

0

Вы можете переопределить шаблоны на поле от поля основы вместо перекрывая весь шаблон шоу.

$showMapper->add(
    'my_field', 
    null, // let the type guesser do its thing 
    ['template' => 'whatever_you_need.html.twig'] 
); 

Это работает, и вы не можете найти его в документах, пожалуйста, подумайте о том, чтобы внести в него абзац.

+0

Я не знаю, как часто я пробовал этот путь, и он никогда не работает ... теперь я попробовал снова, и все работало, как магия! Спасибо, ты спас мой день :) (вывод: никогда не сдавайся, повторите попытку снова ... ^^) Но я прав, что это не так просто, чтобы переопределить каждый использованный шаблон? –

+0

Если вы имеете в виду переопределить 'DoctrineORMAdminBundle: CRUD: show_orm_one_to_many.html.twig', я думаю, вы можете добиться этого со стандартным переопределением шаблона, как описано в sf docs ... – greg0ire

Смежные вопросы