同一页面上的多个表单

时间:2014-04-17 11:58:55

标签: php forms symfony

我将FOSUserBundleSymfony2一起使用。默认情况下,FOSUserBundle配置文件编辑和密码更改位于不同的页面上,但我需要在一个页面上添加这些表单并添加一个自定义表单。我的想法是用其他形式覆盖配置文件控制器,但也许有更简单的方法?我也有想法在不同的控制器中发布所有表单,但问题是我需要为任何字段显示错误,我不认为,将对象保存在flash中是个好习惯。

1 个答案:

答案 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 %}