我遇到Symfony Flex和FOSUserBundle的问题。我无法覆盖默认的FOSUserBundle模板。我尝试按照Symfony文档,教程和没有任何工作做所有事情。这就像Twig不会将我的 layout.html.twig 渲染而不是默认的FOSUserBundle。
模板目录树看起来应该遵循新的Symfony Flex结构:
- templates
- default
- FOSUserBundle
- views
- layout.html.twig
- base.html.twig
也许有人遇到过与Symfony Flex类似的问题。
答案 0 :(得分:4)
从https://github.com/symfony/symfony/pull/24179开始在Symfony 3.4中合并的拉取请求,3.4-BETA1
和4.0-BETA1
指定您需要将模板放在templates/bundles/FOSUserBundle/layout.html.twig
。 PR描述正好以这个用例为例。
在Symfony 3.3中,它应该通过将模板放在src/Resources/FOSUserBundle/views/layout.html.twig
答案 1 :(得分:1)
它对我有用
答案 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/*
中。
但是由于FOSUserBundle文件结构未遵循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中为我工作!