我将FOSUserBundle
与Symfony2
一起使用。默认情况下,FOSUserBundle配置文件编辑和密码更改位于不同的页面上,但我需要在一个页面上添加这些表单并添加一个自定义表单。我的想法是用其他形式覆盖配置文件控制器,但也许有更简单的方法?我也有想法在不同的控制器中发布所有表单,但问题是我需要为任何字段显示错误,我不认为,将对象保存在flash中是个好习惯。
答案 0 :(得分:0)
我的页面上有一个带有登录名的边栏和一些预告片,所以它可以在任何地方使用。
只需在要用于显示登录/注册等的twig.html文件中执行以下操作
{% extends "::base.html.twig" %}
{% block title %} Title {% endblock %}
{% block sidebar %}
{% render controller("FOSUserBundle:Security:Login") %}
{# Other Controller you want to render here #}
{% endblock %}
我的login.twig.html文件看起来像这样
{# app\Resources\FOSUserBunle\Security\views\login.twig.html #}
{% block fos_user_content %}
<div class="teaser-header">Login</div>
<form role="form" action="{{ path("fos_user_security_check") }}" method="post">
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
<div class="form-group">
<label for="username">{{ 'MyLog Username'|trans }}</label>
<input class="form-control" type="text" id="username" name="_username" placeholder="Your Username" required="required" />
</div>
<div class="form-group">
<label for="password">{{ 'Password'|trans }}</label>
<input class="form-control" type="password" id="password" name="_password" placeholder="Your Password" required="required" />
</div>
<input type="submit" id="_submit" name="_submit" value="{{ 'Segel setzen'|trans }}" />
</form>
{% endblock %}