因为我想覆盖Symfony2中FOS UserBundle的模板,我正在尝试调整我的自定义UserBundle。
我制作了模板(并且遵循与FOS捆绑完全相同的结构),并为每个控制器制作了一个“空”扩展名。
但是,只要我使覆盖激活,清除缓存并尝试登录,就会出现错误,我不明白为什么。错误如下:
在渲染模板期间抛出了异常 (“路线”登录“不存在。”)in “FOSUserBundle:安全性:login.html.twig”。
这是我自己的SecurityController,例如:
<?php
namespace R\Bundle\UserBundle\Controller;
use Symfony\Component\HttpFoundation\RedirectResponse;
use FOS\UserBundle\Controller\SecurityController as BaseController;
class SecurityController extends BaseController
{ }
通过激活覆盖(清除缓存之前),我的意思是取消注释这一行:
<?php
namespace R\Bundle\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class RUserBundle extends Bundle
{
public function getParent()
{
return 'FOSUserBundle'; <-- this line activates or deactivates the override
}
}
我自己的UserBundle中的login.html.twig模板,它应该覆盖FOS UserBundle中的一个模板,它仍然是原始模板的精确副本(如果覆盖不活动,则该模板运行正常)。 p>
我假设我还需要覆盖路由文件,但是如果我将它们复制到我的自定义UserBundle中,则错误仍然存在。
答案 0 :(得分:1)
不包括login
路线。您需要加入它,请参阅step 6:
# app/config/routing.yml
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
答案 1 :(得分:0)
错误实际上完全不同:
错误地调用了一个twig片段(在复杂的模板层次结构中),它仍然包含一个旧的路径名。由于这条路径被称为登录,我确信该错误与我新激活的UserBundle有关。所以Symfony2向我指出了一个完全错误的位置;在那附近找不到错误;)