我已经设置了样式的注册表单(我通过添加fields.html.twig更改了一些小部件并全局加载)但是样式不会应用于登录表单元素,因为html标记直接在这里呈现,而不是使用Symfony的助手。我应该重写FOS安全控制器来获取表单变量吗?
答案 0 :(得分:0)
目前,SecurityController:renderLogin
操作不会返回包含FormView
实例的变量。
表单的HTML代码(以及可用于样式的类)被硬编码到登录模板中。
您可以使用以下两个选项来覆盖包含HTML代码的模板。
您只需将login.html.twig
放入文件夹
FosUserBundle:Security:login.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
在documentation中了解有关模板继承的更多信息。