FOSUserBundle模板覆盖不适用于Symfony Flex

时间:2017-11-10 19:37:57

标签: php symfony fosuserbundle

我遇到Symfony Flex和FOSUserBundle的问题。我无法覆盖默认的FOSUserBundle模板。我尝试按照Symfony文档,教程和没有任何工作做所有事情。这就像Twig不会将我的 layout.html.twig 渲染而不是默认的FOSUserBundle。

模板目录树看起来应该遵循新的Symfony Flex结构:

- templates
   - default
   - FOSUserBundle
      - views
         - layout.html.twig
   - base.html.twig

也许有人遇到过与Symfony Flex类似的问题。

7 个答案:

答案 0 :(得分:4)

https://github.com/symfony/symfony/pull/24179开始在Symfony 3.4中合并的拉取请求,3.4-BETA14.0-BETA1指定您需要将模板放在templates/bundles/FOSUserBundle/layout.html.twig。 PR描述正好以这个用例为例。

在Symfony 3.3中,它应该通过将模板放在src/Resources/FOSUserBundle/views/layout.html.twig

中来工作

答案 1 :(得分:1)

  • 模板
    • 默认
    • FOSUserBundle
      • layout.html.twig

它对我有用

答案 2 :(得分:0)

在自定义用户捆绑包中,您必须对父捆绑包进行十分转换

use Symfony\Component\HttpKernel\Bundle\Bundle;

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

注意:Symfony Flex是alpha软件;使用它需要您自担风险

答案 3 :(得分:0)

我不明白为什么用symfony 4.0.8对我不起作用: - 模板   - FOSUserBundle        - layout.html.twig

但它适用于 SRC    - 资源      - FOSUserBundle        - 意见          - layout.html.twig

答案 4 :(得分:0)

我对https://symfony.com/doc/current/templating/overriding.html的symfony4和fosUserBundle有类似的问题, for registration_content overriding我把我的模板文件放在templates \ bundles \ FOSUserBundle \ Registration \ register_content.html.twig中 它准备工作了 希望能为你效劳

答案 5 :(得分:0)

我将在这里放弃我的答案,因为我一直在与这个捆绑包进行艰苦的战斗。

我从供应商的捆绑软件中复制了所需的模板,然后首先将其放入

project_root/src/Resources/FOSUserBundle

但是,阅读完文档后,似乎应该将其放在project_root/templates/bundles/name_of_bundle/*中。

但是由于FOSU​​serBundle文件结构未遵循symfonys约定而无法正常工作,您必须将内容移出views文件夹。

因此,将所有内容移出project_root/templates/bundles/name_of_bundle/views文件夹而不是views并移到父name_of_bundle文件夹中。

答案 6 :(得分:-3)

- templates
 - FOSUserBundle
      - layout.html.twig

在Symfony 4.0.8中为我工作!

相关问题