Inheritance Symfony继承不是';t工作易管理包
我正在使用symfony 3和EasyAdminBundle 我创建了一个名为AdminBundle的EasyAdminBundle子包(覆盖) 我在控制器中重写了一个方法,它工作正常,但当我尝试重写一个细枝模板时,它不工作 我在Inheritance Symfony继承不是';t工作易管理包,inheritance,twig,bundle,symfony,symfony2-easyadmin,Inheritance,Twig,Bundle,Symfony,Symfony2 Easyadmin,我正在使用symfony 3和EasyAdminBundle 我创建了一个名为AdminBundle的EasyAdminBundle子包(覆盖) 我在控制器中重写了一个方法,它工作正常,但当我尝试重写一个细枝模板时,它不工作 我在AdminBundle/Resources/views/default/list.html.twig 原始文件位于vendor/javiereguiluz/easyadmin bundle/Resources/views/default/list.html.twig 如
AdminBundle/Resources/views/default/list.html.twig
原始文件位于vendor/javiereguiluz/easyadmin bundle/Resources/views/default/list.html.twig
如何修复?
(我多次清除缓存…当呈现
EasyAdminBundle:default:index.html.twig
时,Symfony实际上在两个不同的位置查找模板:
@FOSUserBundle/resources/config/routing/security.xml
方法引用资源时,资源重写才起作用。如果引用资源时未使用@BundleName快捷方式,则不能以这种方式重写它们。[]
要覆盖捆绑包模板,只需将index.html.twig
模板从捆绑包复制到app/Resources/EasyAdminBundle/views/default/index.html.twig
(app/Resources/EasyAdminBundle
目录将不存在,因此需要创建它)。[]
如果在新位置添加模板,即使处于调试模式,也可能需要清除缓存(php bin/console cache:clear
)
当呈现
EasyAdminBundle:default:index.html.twig
时,Symfony实际上会在两个不同的位置查找模板:
@FOSUserBundle/resources/config/routing/security.xml
方法引用资源时,资源重写才起作用。如果引用资源时未使用@BundleName快捷方式,则不能以这种方式重写它们。[]
要覆盖捆绑包模板,只需将index.html.twig
模板从捆绑包复制到app/Resources/EasyAdminBundle/views/default/index.html.twig
(app/Resources/EasyAdminBundle
目录将不存在,因此需要创建它)。[]
如果在新位置添加模板,即使处于调试模式,也可能需要清除缓存(php bin/console cache:clear
)
请发布你说你正在尝试覆盖的细枝代码。请发布你说你正在尝试覆盖的细枝代码。嗯,所以EasyAdmin在内部不使用@FOSUserBundle/resources/config/routing/security.xml方法处理资源,而是使用@BundleName方法,这样我就不能从子包中重写,但我必须将文件放在app/resources中,对吗?我不确定EasyAdmin在内部是否不使用@BundleName处理资源,但是是的,将文件放在app/Resources.Mhm中始终有效,因此EasyAdmin在内部不使用@FOSUserBundle/Resources/config/routing/security.xml方法处理资源,而是使用@BundleName方法,因此我无法覆盖子捆绑包,但我必须将文件放在app/Resources中,对吗?我不确定EasyAdmin是否在内部不使用@BundleName处理资源,但是是的,将文件放在应用程序/资源中总是有效的。
namespace AdminBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class AdminBundle extends Bundle {
public function getParent(){
return 'EasyAdminBundle';
}
}