Symfony 没有覆盖包视图

Symfony not overriding bundle view

我一直在关注 Symfony docs 打算使用继承覆盖 Sylius Web Bundle layout.html.twig。

捆绑文件位于

/vendor/sylius/sylius/src/Sylius/Bundle/WebBundle/Resources/views/Frontend/layout.html.twig

我已将新文件放在

/src/AppBundle/Resources/views/Frontend/layout.html.twig

我还在以下位置更新了文件:

/src/AppBundle/AppBundle.php

继承相关包

<?php

namespace AppBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AppBundle extends Bundle
{
    public function getParent()
    {
        return 'SyliusWebBundle';
    }
}

但页面保持不变。如果我删除原来的 layout.html.twig,Symfony 会说找不到文件。它从不尝试查找我的新文件。

这个配置看起来正确吗?是否存在可以防止这种情况的常见错误配置?通过调试器我可以看到 getParent() 函数被调用了,但是有没有其他方法可以调试这个问题?

尝试将模板放在:

app/Resources/SyliusWebBundle/views/layout.html.twig

很可能只是缓存。 您提供的代码是正确的,它对我来说是完全相同的配置。 所以

> php app/console cache:clear

应有尽有

另一件愚蠢的事情可能是..你把你的appbundle添加到appKernel.php了吗??