我在项目中安装了SonataBundle,我需要更改随附的standard_layout.html.twig(即更改块' notice')。
我将一个同名的空文件放入
/应用/资源/ SonataAdminBundle /视图
目录和这个文件被Symfony捕获,但现在我想在基本模板中做一些小改动 可能吗?我试图放置
{% extends 'SonataAdminBundle::standard_layout.html.twig' %}
在此文件的第一行,但这会导致致命错误
' 100'的最大功能嵌套级别达到
答案 0 :(得分:3)
我找到了解决方案。 Sonata允许用户配置用于基本布局的模板。
# /app/config/config.yml
sonata_admin:
title: Admin
templates:
layout: SonataAdminBundle::base.html.twig
现在在app / Resources / SonataAdminBundle / views目录中创建文件base.html.twig,其中包含以下内容:
{% extends 'SonataAdminBundle::standard_layout.html.twig' %}
它有效。
答案 1 :(得分:1)
在php.ini中增加xdebug.max_nesting_level的值:http://xdebug.org/docs/all_settings#max_nesting_level
答案 2 :(得分:1)
当您添加/app/Resources/SonataAdminBundle/views/standard_layout.html.twig
时,您基本上会替换原始版本,以便引用SonataAdminBundle::standard_layout.html.twig
(包括,扩展等)的所有内容现在都引用您的新版本。
如果你然后使用{% extends 'SonataAdminBundle::standard_layout.html.twig' %}
,那么你正在扩展原文,它被你的原文取代,扩展原文...意思是你实际上是一遍又一遍地扩展自己直到页面死亡。
据我所知,解决此问题的唯一方法是将整个原始SonataAdminBundle::standard_layout.html.twig
复制到/app/Resources/SonataAdminBundle/views/standard_layout.html.twig
,然后根据需要进行编辑。