根据此http://symfony.com/doc/current/bundles/FOSUserBundle/overriding_templates.html
我可以覆盖app / Resources目录中的FOSUserBundle模板或创建子包。
有没有办法将这些模板放入我自己的bundle目录中?
我尝试添加:
twig:
debug: "%kernel.debug%"
strict_variables: "%kernel.debug%"
paths:
'%kernel.root_dir%/../src/AppBundle/Resources/FOSUserBundle/views/': FOSUSerBundle
到我的config.yml
答案 0 :(得分:0)
不,模板名称在FOSUserBundle的控制器中是硬编码的,因此您无法将它们放在自己的捆绑包中。 (除非你完全覆盖所有控制器)
答案 1 :(得分:0)
// app/Resources/FOSUserBundle/views/layout.html.twig
{% include '@YourBundleName/layout.html.twig' %}
答案 2 :(得分:0)
我在FosUserBundle
版本中开发的一个项目中为symfony2.3
做了模板覆盖。
请尝试以下可能对您有帮助的代码
<强> config.yml 强>
twig:
debug: "%kernel.debug%"
strict_variables: "%kernel.debug%"
<强> FrontBundle /控制器/ LoginController.php 强>
<?php
namespace Dhi\UserBundle\Controller;
use FOS\UserBundle\Controller\SecurityController as Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\HttpFoundation\RedirectResponse;
class LoginController extends Controller
{
protected function loginController(array $data)
{
$request = $this->get('request');
return $this->render('FrontBundle:login:login.html.twig');
}
}
<强> FrontBundle /资源/视图/登录/ login.html.twig 强>
{% extends "DhiUserBundle::layout.html.twig" %}
{% trans_default_domain 'FOSUserBundle' %}
{% block body %}
{% block fos_user_content %}
{% trans_default_domain 'FOSUserBundle' %}
// Your login form code here
{% endblock fos_user_content %}
{% endblock body %}
答案 3 :(得分:0)
您可以查看您的FOSUser和Symfony版本并阅读此主题:https://github.com/FriendsOfSymfony/FOSUserBundle/issues/2439
我遇到过这个错误,它不允许我覆盖FOS模板,因为他们使用(在最新版本2.0.0-beta中)命名空间语法(带有@符号的语法)来链接模板。因此,在Symfony的2.7.23版本之前,您无法通过将正确的命名文件放在如下所述的相同文件夹中来覆盖模板:http://symfony.com/doc/master/bundles/FOSUserBundle/overriding_templates.html
答案 4 :(得分:0)
我今天遇到了同样的问题。我的config.yml文件如下:
# Twig Configuration
twig:
debug: '%kernel.debug%'
strict_variables: '%kernel.debug%'
paths:
"%kernel.root_dir%/../src/WebBundle/Resources/views/user/": FOSUser
我在WebBundle / Resources / views / user /下添加了所有FOSUserBundle模板,并在所有模板中进行了一些扩展/包含更改,现在它可以正常工作。