重写捆绑模板“资源被资源隐藏”时Symfony2错误?

时间:2013-06-12 17:19:13

标签: symfony fosuserbundle

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

  

“... 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书中的步骤没有什么不同。

这个例外可能是什么原因?我怎样才能让它发挥作用?

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

1 个答案:

答案 0 :(得分: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';
    }
}

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