【问题标题】:Symfony2 Error when overriding bundle template "resource is hidden by a resource"?覆盖捆绑模板“资源被资源隐藏”时出现Symfony2错误?
【发布时间】:2013-06-08 22:04:48
【问题描述】:

我正在尝试使用我的包的布局覆盖第三方包的布局模板,方法是将新布局包含在 app/Resources/ 目录中,如Symfony2 book section 所示;但是,我收到以下异常:

“...path_to_my_app/app/Resources/FOSUserBundle/views/layout.html.twig”资源被“MyVendorMyBundle”派生包中的资源隐藏。创建一个“...path_to_my_app/app/Resources/MyVendorMyBundle/views/layout.html.twig”文件来覆盖捆绑资源。

特别是,我想用我的包中的 FOSUserBundle 布局覆盖。我按照bundle's documentation 中显示的步骤进行操作,这与 Symfony 书中的步骤没有什么不同。

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

我尝试将我的包的布局放在 app/Resources/MyVendorMyBundle/views/ 中,如上面的异常消息中所示,但如果我这样做,只会读取并返回 MyBundle 的布局,而不是 FOSUserBundle 的模板扩展它。

【问题讨论】:

    标签: symfony fosuserbundle


    【解决方案1】:

    原来我之前的开发人员将 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';
        }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 2013-10-07
      • 1970-01-01
      • 2012-09-22
      • 2011-12-13
      相关资源
      最近更新 更多