[英]SonataAdminBundle Extending templates
我已经设置了Admin类来呈现自定义模板:
public function getTemplate($name)
{
switch ($name)
{
default:
case 'list':
return 'MyBundle:Admin:list.html.twig';
break;
return parent::getTemplate($name);
break;
}
}
这工作正常。 我可以在模板文件中输入一些html,它会显示OK。 但是,我想从管理包中扩展现有模板,因为我只想对此实体进行一些小的更改。
我已将以下内容添加到我的模板文件中:
{% extends 'SonataAdminBundle:CRUD:base_list.html.twig' %}
但这给了我以下错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 77 bytes)
谁能告诉我我在做什么错?
您的开关/盒不正确。
它应该是:
public function getTemplate($name)
{
switch ($name) {
case 'list':
return 'MyBundle:Admin:list.html.twig';
break;
default:
return parent::getTemplate($name);
break;
}
}
我不确定您是否在做“错误”的事情(除了奇怪的情况下语法没有按照您认为的那样做,请参见http://php.net/manual/en/control-structures.switch .php并向下滚动至描述“ break”语句重要性的部分。
扩展模板时,似乎有可能将symfony置于无限循环中。 我已经看到了几个模板。 我还没有弄清楚到底是什么触发了它,但是我认为它与使用EasyExtends的包继承有关。 在我的应用程序中,我有一个儿童sonata-admin捆绑包:
class ApplicationSonataAdminBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function getParent()
{
return 'SonataAdminBundle';
}
}
然后,我仅使用内容覆盖了standard_layout.html.twig:
{% extends "SonataAdminBundle::standard_layout.html.twig" %}
这导致“ SonataAdminBundle :: standard_layout.html.twig”被无限次加载,因为模板似乎在有效地扩展自身。
假设您的设置与我的类似。 我怀疑尝试执行操作的唯一方法是使用其他模板名称(例如“ my_standard_layout.html.twig”),然后将该模板设置为应用程序范围的默认值,如下所述: https:/ /sonata-project.org/bundles/admin/master/doc/reference/templates.html#configuring-templates
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.