我已经注册了表单样式(我通过添加fields.html.twig更改了一些小部件并全局加载),但是这些样式不会应用于登录表单元素,因为html标签是直接在此处呈现的,而不是使用Symfony的助手。是否应该重写FOS Security控制器以获取表单变量或其他内容?
当前,该SecurityController:renderLogin
操作不返回包含FormView
实例的变量。
表单的HTML代码(以及因此可以用于样式设置的类)被硬编码到登录模板中。
您可以使用以下两个选项来覆盖包含HTML代码的模板。
您只需FosUserBundle:Security:login.html.twig
将alogin.html.twig
放入文件夹即可覆盖模板
app/Resources/FOSUserBundle/views/Security/
只要确保您包括...
{% extends "FOSUserBundle::layout.html.twig" %}
...在您新创建的模板中。
覆盖模板的另一种方法是使用包继承。
因此,您将通过返回'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] 删除。
我来说两句