您好,我正在尝试将 FOSUser bundle 的登录表单包含在我的自定义模板中。像那样:
{% include 'FOSUserBundle:Security:login.html.twig' %}
但是我有这个错误:
第 7 行的 FOSUserBundle:Security:login.html.twig 中不存在变量“error”
有没有办法在我的 Controller 中不添加任何东西的情况下包含模板?
最佳答案
要覆盖 FosUserBundle 的模板,您必须这样做:
- 在
app/Resources
中创建文件夹FOSUserBundle/view
- 将 FOSUserBundle 的 View 文件夹复制到您之前创建的文件夹中
并且您可以包含您的模板和自定义 FOSUser View 。
示例:
app/Resources/FOSUserBundle/view
中 FOSUser 的 layout.html.twig:
{% extends ":layout:Public/layout.html.twig" %} #My layout
{% block body %}
<div>
{% block fos_user_content %}
{% endblock fos_user_content %}
</div>
{% endblock %}
和app/Resources/FOSUserBundle/view/Security/login.html.twg
:
{% extends "FOSUserBundle::layout.html.twig" %}
{% trans_default_domain 'FOSUserBundle' %}
{% block fos_user_content %}
<div class="col-md-4">
<form action="{{ path("fos_user_security_check") }}" method="post">
<h2 class="form-signin-heading">Se connecter </h2>
<hr>
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
<label class="sr-only" for="username">{{ 'security.login.username'|trans }}</label>
<input class="form-control" type="text" id="username" name="_username" value="{{ last_username }}" required="required" />
<label class="sr-only" for="password">{{ 'security.login.password'|trans }}</label>
<input class="form-control" type="password" id="password" name="_password" required="required" placeholder="Mot de passe" />
<div class="checkbox">
<label>
<input type="checkbox" id="remember_me" name="_remember_me" value="on" />
<label for="remember_me">{{ 'security.login.remember_me'|trans }}</label>
</label>
</div>
<input class="btn btn-primary" type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans }}" />
</form>
<br>
<a href="{{ path('fos_user_resetting_request') }}" class="btn btn-danger">Mot de passe perdu ?</a>
</div>
<div class="col-md-2"></div>
<div class="col-md-3">
<h2>Pas encore inscrit ?</h2>
<hr>
<em>
nous vous invitons à vous inscrire<br />
</em>
<br /><br />
<a href="{{ path('fos_user_registration_register') }}" class="btn btn-primary">S'inscrire</a>
</div>
{% endblock fos_user_content %}
我认为有很多解决方案,但在我看来,这是覆盖 fosuser 观点的更好方法
关于symfony - FOS用户包。在我的模板中包含登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36884174/