2013-06-12 99 views
1

我试图通过在应用程序/ Resources /目录中包含新布局来覆盖我的包的布局来覆盖第三方包的布局模板,如Symfony2 book section中所示;然而,我发现了以下异常:Symfony2覆盖包模板“资源被资源隐藏”时出错?

“...... path_to_my_app /应用/资源/ FOSUserBundle /视图/ layout.html.twig”资源由资源从‘MyVendorMyBundle’衍生束隐藏。创建一个“... path_to_my_app/app/Resources/MyVendorMyBundle/views/layout.html.twig”文件来覆盖该资源。

特别是,我想用我的包中的那个覆盖FOSUserBundle布局。我遵循bundle's documentation中显示的步骤,这与Symfony书中的步骤没有什么不同。

什么可能是这种例外的原因?我怎样才能使它工作?

我试图把我的包的布局放在应用程序/ Resources/MyVendorMyBundle/views /中,如上面的异常消息所示,但是如果我这样做,只有MyBundle的布局被读取并返回,而不是用于FOSUserBundle扩展它。

回答

3

原来,之前我已成立MyBundle为FOSUserBundle的孩子一样shown in the documentation开发商(无我注意到...):

// src/Acme/UserBundle/AcmeUserBundle.php 
namespace Acme\UserBundle; 
use Symfony\Component\HttpKernel\Bundle\Bundle; 

class AcmeUserBundle extends Bundle 
{ 
    public function getParent() 
    { 
     return 'FOSUserBundle'; 
    } 
} 

上面明显有(隐藏)的重新引发冲突在应用程序/ Resources/FOSUserBundle/views /文件夹中定义布局模板。我刚从上面显示的bundle类中删除了getParent()方法来解决这个问题。