Symfony2 覆盖bundle模板时出错 "resource is hidden by a resource" ?



我试图用我的bundle的布局覆盖第三方bundle的布局模板,通过在app/Resources/目录中包含新的布局,如Symfony2书部分所示;然而,我得到了以下异常:

"…path_to_my_app/app/资源/FOSUserBundle/视图/layout.html。"树枝"资源被"MyVendorMyBundle"派生bundle中的一个资源隐藏。创建一个"…path_to_my_app/app/Resources/MyVendorMyBundle/views/layout.html "。"Twig"文件来覆盖bundle资源。

特别地,我想在我的包中覆盖FOSUserBundle布局。我遵循了bundle文档中所示的步骤,这些步骤与Symfony手册中的步骤没有什么不同。

这个异常的原因是什么?我怎样才能让它发挥作用?

我试着把我的bundle的布局放在app/Resources/MyVendorMyBundle/views/中,正如上面的异常消息所示,但是如果我这样做,只有MyBundle的布局被读取和返回,而不是FOSUserBundle扩展它的模板。

原来在我之前的开发人员已经将MyBundle设置为FOSUserBundle的子节点,如文档中所示(我没有注意到…):

// src/Acme/UserBundle/AcmeUserBundle.php
namespace AcmeUserBundle;
use SymfonyComponentHttpKernelBundleBundle;
class AcmeUserBundle extends Bundle
{
    public function getParent()
    {
        return 'FOSUserBundle';
    }
}

上面的内容显然与app/Resources/FOSUserBundle/views/文件夹中重新定义的布局模板产生了冲突。我只是从上面显示的bundle类中删除了getParent()方法来解决这个问题。

相关内容

最新更新