Symfony app,内容显示两次

时间:2017-03-29 20:09:41

标签: symfony symfony-3.1

这里的第一个问题。 我正在开发一个登录页面,我无法弄清楚为什么我的登录表单显示两次。我仔细检查了枝条文件和路线,但我没有看到可能导致它的原因。

我正在使用php服务器,所以我在开发环境中,我认为发生的事情是我的调试栏被实际页面替换,导致显示内容两次。调试器栏未显示。我在谷歌搜索,我看到他们提到的身体标签没有被关闭,所以我也检查了。仍然注意到。我检查了一些其他文件是否也在调用登录模板。没什么......有什么建议吗?

这是一张价值超过千言万语的图片。

由于

image shows the login page showing twice

此外,这里是我正在使用的代码,它直接来自symfony的文档:

控制器

/**
 * @Route("/login", name="security_login")
 */
public function loginAction(Request $request)
{
    $authenticationUtils = $this->get('security.authentication_utils');

    // get the login error if there is one
    $error = $authenticationUtils->getLastAuthenticationError();

    // last username entered by the user
    $lastUsername = $authenticationUtils->getLastUsername();

    return $this->render('security/login.html.twig', array(
        'last_username' => $lastUsername,
        'error'         => $error,
    ));
}

Securit.yml

providers:
    app_user_prov:
        entity:
            class: AppBundle:User
firewalls:
    main:
        pattern: ^/
        anonymous: ~
        guard:
            authenticators:
                - cas_authenticator

登录twig文件:

{% extends 'base.html.twig' %}

{% block content %}
{% if error %}
    <div class="row">
        <div class="col-lg-12">
            <p class="bg-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</p>
        </div>
    </div>
{% endif %}

    <div class="row">
        <div class="col-lg-12 text-center" style="margin-top:35px;">
            <img style="border:none;" src="loreipsum.png" width="200">
            <br />&nbsp;<br />
            <form action="{{ path("security_login") }}" method="post" style="margin-top:15px;">
                <div class="form-group">
                    <label for="username">Username or email</label>
                    <input type="text" id="username" name="_username" value="{{ last_username }}" required="required" />
                </div>
                <div class="form-group">
                    <label for="password">Password</label>
                    <input type="password" id="password" name="_password" required="required" />
                </div>
                <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
                <div class="form-group">
                    <input type="submit" id="_submit" name="_submit" value="Submit" />
                </div>
            </form>
        </div>
    </div>
{% endblock %}

基础树枝文件:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>{% block title %}Administration{% endblock %}</title>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
          integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css"
          integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymo

        {% block stylesheets %}{% endblock %}
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />

    <!-- jQuery and Bootstrap -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
            integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

    {% block javascripts %}{% endblock %}
</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-lg-6">
            <h1 class="text-left">
                <img style="border:none;" src="loremipsum.jpg" width="200">
            </h1>
        </div>
        <div class="col-lg-6">
            <h3 class="text-right">&nbsp;<br/>Lorem ipsum</h3>
        </div>
    </div>

    {% block content %}{% endblock %}

</div>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

也许您的登录页面无法公开访问:

- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }

因此,symfony首先显示FOS登录,当您对用户进行身份验证时,重定向到之前请求的页面/登录