2016-06-22 91 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