Symfony2 FOSUserBundle登录表单样式

时间:2014-01-19 13:05:47

标签: symfony fosuserbundle

我已经设置了样式的注册表单(我通过添加fields.html.twig更改了一些小部件并全局加载)但是样式不会应用于登录表单元素,因为html标记直接在这里呈现,而不是使用Symfony的助手。我应该重写FOS安全控制器来获取表单变量吗?

1 个答案:

答案 0 :(得分:0)

目前,SecurityController:renderLogin操作不会返回包含FormView实例的变量。

表单的HTML代码(以及可用于样式的类)被硬编码到登录模板中。

您可以使用以下两个选项来覆盖包含HTML代码的模板。

1)覆盖app / Resources / FOSUserBundle

中的模板

您只需将login.html.twig放入文件夹

即可覆盖模板FosUserBundle:Security:login.html.twig
app/Resources/FOSUserBundle/views/Security/

请确保包括......

{% extends "FOSUserBundle::layout.html.twig" %}

...在新创建的模板中。

2)使用bundle继承

覆盖模板

覆盖模板的另一种方法是使用捆绑继承

因此,您将通过在其'FOSUserBundle'方法中返回getParent()来创建一个扩展FOSUserBundle的新捆绑包。

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

不要忘记在app/AppKernel.php注册捆绑包。

现在,您可以将新的login.html.twig模板存储在

 src\Vendor\ExtendingBundle\Resources\views\login.html.twig

文档

documentation中了解有关模板继承的更多信息。