Я использую SonataAdminBundle для своего проекта, и я хотел бы переопределить блок.
Если я создам шаблон в app/Resources/views/SonataAdminBundle/views/standard_layout.html.twig
очистить кеш и сделать это:
{% extends 'SonataAdminBundle::standard_layout.html.twig' %}
{% block theBlockIWantToOverride %}
{% endblock %}
Я получаю Maximum function nesting level of '250' reached, aborting!
ошибка.
Если я удалю extends
часть это делает пустую страницу. Вместо этого мне нужно скопировать все содержимое файла в этот новый файл, а затем изменить содержимое блока. Я знаю, что так работает Symfony2, я просто не знаю, есть ли обходной путь, не имея там всего кода?
Причина, по которой я хочу это сделать, заключается в том, что я использую SensioLabsInsight, и меня это беспокоит raw
фильтр ветки, который использует SonataAdminBundle. Я знаю, что могу просто проигнорировать предупреждение, но оно кажется неправильным.
Также я попытался переопределить пакет, создав пакет php app/console generate:bundle
а затем в src / Vendor / AdminBundle / VendorAdminBundle.php я добавил:
/**
* {@inheritdoc}
*/
public function getParent()
{
return 'SonataAdminBundle';
}
и сделал вышеуказанный процесс, добавил src/Vendor/AdminBundle/Vendor/Resources/views/standard_layout.html.twig
который не решил проблему. Опять получилась ошибка уровня вложенности.
Шаблон на app/Resources/views/SonataAdminBundle/views/standard_layout.html.twig
расширяется SonataAdminBundle::standard_layout.html.twig
это тот же файл, означающий, что он просто расширяется, пока не умрет.
Вы должны скопировать содержимое файла и изменить то, что вам нужно в этом.
Или вы можете скопировать оригинал standard_layout.html.twig
и переименовать его (чтобы standard_base.html.twig
например), затем переопределите ваши блоки в вашей версии standard_layout.html.twig
а затем продлите standard_base.html.twig
,
Еще более альтернативно и лучше для SonataAdminBundle, вы можете использовать другой именованный шаблон (VendorAdminBundle::standard_layout_override.html.twig
например) как ваша версия standard_template.html.twig
расширить оригинал и установить его в конфиге, как …
sonata_admin:
templates:
layout: VendorAdminBundle::standard_layout_override.html.twig
С тем, как вы пытаетесь:
app/Resources/views/SonataAdminBundle/views/standard_layout.html.twig
{% extends 'SonataAdminBundle::standard_layout.html.twig' %}
С док : http://sonata-project.org/bundles/admin/master/doc/reference/templates.html
Извлечь:
sonata_admin:
templates:
layout: SonataAdminBundle::standard_layout.html.twig
ajax: SonataAdminBundle::ajax_layout.html.twig
list: SonataAdminBundle:CRUD:list.html.twig
show: SonataAdminBundle:CRUD:show.html.twig
edit: SonataAdminBundle:CRUD:edit.html.twig
history: SonataAdminBundle:CRUD:history.html.twig
preview: SonataAdminBundle:CRUD:preview.html.twig
delete: SonataAdminBundle:CRUD:delete.html.twig
batch: SonataAdminBundle:CRUD:list__batch.html.twig
acl: SonataAdminBundle:CRUD:acl.html.twig
action: SonataAdminBundle:CRUD:action.html.twig
select: SonataAdminBundle:CRUD:list__select.html.twig
filter: SonataAdminBundle:Form:filter_admin_fields.html.twig
dashboard: SonataAdminBundle:Core:dashboard.html.twig
search: SonataAdminBundle:Core:search.html.twig
batch_confirmation: SonataAdminBundle:CRUD:batch_confirmation.html.twig