2016-06-22 52 views
0

我使用symfony的3 EasyAdminBundleSymfony的继承工作不EasyAdmin束

我创建了一个名为AdminBundle孩子EasyAdminBundle的新包(重写)

namespace AdminBundle; 

use Symfony\Component\HttpKernel\Bundle\Bundle; 

class AdminBundle extends Bundle { 

    public function getParent(){ 

     return 'EasyAdminBundle'; 
    } 

} 

我在overrided的方法控制器,它工作正常,但是当我试图重写它不工作枝杈模板...

我创造了我的树枝文件中AdminBundle/Resources/views/default/list.html.twig

原文为vendor/javiereguiluz/easyadmin-bundle/Resources/views/default/list.html.twig

如何解决? (我清除缓存多次...)

+0

请张贴你说你试图覆盖的代码。 –

回答

2

EasyAdminBundle:default:index.html.twig呈现,Symfony的实际上看起来在模板中两个不同的位置:

  1. 应用程序/资源/ EasyAdminBundle /视图/默认/指数.html.twig
  2. 的src/AdminBundle /资源/视图/默认/ index.html.twig

你的做法是要做到这一点,但第二个选项:

仅当您使用@FOSUserBundle/Resources/config/routing/security.xml方法引用资源时,资源的覆盖才有效。如果您在不使用@BundleName快捷方式的情况下引用资源,则不能使用这种方式重写它们。 [See Doc]

要覆盖包模板,只是从包复制index.html.twig模板app/Resources/EasyAdminBundle/views/default/index.html.twig(该app/Resources/EasyAdminBundle目录将不存在,所以你需要创建它)。 [See Doc]

如果您在新的位置添加模板,您可能需要清除缓存(php bin/console cache:clear),即使你是在调试模式。

+0

Mhm,所以EasyAdmin内部不会使用@ FOSUserBundle/Resources/config/routing/security.xml方法处理资源,而是使用@BundleName方法,因此我无法从子包中覆盖,但必须将文件放入应用程序/资源,对不对? – Francesco

+0

我不确定EasyAdmin内部是否不使用@BundleName处理资源,但是,将文件放入应用程序/资源始终可以正常工作。 – yceruto