Symfony2 FOSUserBundle登录表单样式

g

我已经注册了表单样式(我通过添加fields.html.twig更改了一些小部件并全局加载),但是这些样式不会应用于登录表单元素,因为html标签是直接在此处呈现的,而不是使用Symfony的助手。是否应该重写FOS Security控制器以获取表单变量或其他内容?

尼古拉·梅里

当前,该SecurityController:renderLogin操作不返回包含FormView实例的变量

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

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

1)覆盖app / Resources / FOSUserBundle中的模板

您只需FosUserBundle:Security:login.html.twig将alogin.html.twig放入文件夹即可覆盖模板

app/Resources/FOSUserBundle/views/Security/

只要确保您包括...

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

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

2)使用包继承覆盖模板

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

因此,您将通过返回'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

文件资料

文档中阅读有关模板继承的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章