0

因为我想覆盖 Symfony2 中 FOS UserBundle 的模板,所以我正在尝试调整我的自定义 UserBundle。

我制作了模板(并遵循与 FOS 捆绑包完全相同的结构),并为每个控制器制作了一个“空”扩展。

但是,一旦我激活覆盖,清除缓存并尝试登录,就会出现错误,我不明白为什么。错误内容如下:

在“FOSUserBundle:Security: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 中的模板,它仍然是原始模板的精确副本(如果覆盖未激活,则该模板可以正常工作)。

我假设我也需要以某种方式覆盖路由文件,但是如果我将它们复制到我的自定义 UserBundle 中,错误仍然存​​在。

4

2 回答 2

1

路线login不包括在内。您需要包含它,请参见步骤 6

# app/config/routing.yml
fos_user_security:
    resource: "@FOSUserBundle/Resources/config/routing/security.xml"
于 2013-02-05T15:06:09.730 回答
0

该错误实际上是完全不同的:

错误地调用了一个树枝片段(在复杂的模板层次结构中),它仍然包含一个旧的路径名。由于此路径称为登录,因此我确信该错误与我新激活的 UserBundle 有关。所以 Symfony2 将我指向了一个完全错误的位置;在附近的任何地方都找不到错误;)

于 2013-02-05T15:57:09.573 回答