symfony - FOS用户包。在我的模板中包含登录表单

标签 symfony twig fosuserbundle

您好,我正在尝试将 FOSUser bundle 的登录表单包含在我的自定义模板中。像那样:

 {% include 'FOSUserBundle:Security:login.html.twig' %}

但是我有这个错误: 第 7 行的 FOSUserBundle:Security:login.html.twig 中不存在变量“error”

有没有办法在我的 Controller 中不添加任何东西的情况下包含模板?

最佳答案

要覆盖 FosUserBundle 的模板,您必须这样做:

  1. app/Resources中创建文件夹FOSUserBundle/view
  2. 将 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/

相关文章:

symfony - 手动创建一个symfony2记住我的cookie(FOSUserBundle)

php - 如何在html上为数字添加不同的样式?

php - onFlush 中的计划实体是不同的实例

php - Symfony2 Lazy Services 何时使用?

php - 学习 Symfony2 还是改用 Zend?

symfony - Twig 字符串渲染和 Symfony 扩展

javascript - 使用 Symfony 和 Twig 从 href 中的外部 JavaScript 文件调用函数

tags - 如何在 Drupal 8 上的 TWIG 中以纯文本形式显示节点的标题?

symfony - 如何正确安装 SonataDoctrineMongoDBAdminBundle?

php - Symfony2 FOSbundle : record every user login date