Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 4 |访问通过传统用户表单传递的用户名(来自doc)_Php_Symfony - Fatal编程技术网

Php Symfony 4 |访问通过传统用户表单传递的用户名(来自doc)

Php Symfony 4 |访问通过传统用户表单传递的用户名(来自doc),php,symfony,Php,Symfony,我正在上一个教程,我想访问用户名。我想让会话存储用户名,但我不知道如何捕获登录用户的用户名 到目前为止,我已经尝试了$username=$request->get('username')和next尝试将会话“username”键设置为$username,但无效 SecurityController.php <?php /** * Created by PhpStorm. * User: Adrian * Date: 2018-01-29 * Time: 11:02 */ nam

我正在上一个教程,我想访问用户名。我想让会话存储用户名,但我不知道如何捕获登录用户的用户名

到目前为止,我已经尝试了
$username=$request->get('username')和next尝试将会话“username”键设置为
$username
,但无效

SecurityController.php

<?php
/**
 * Created by PhpStorm.
 * User: Adrian
 * Date: 2018-01-29
 * Time: 11:02
 */

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
use Symfony\Component\Routing\Annotation\Route;

class SecurityController extends Controller
{
    /**
     * @Route("/panel/login", name="login")
     */
    public function login(Request $request, AuthenticationUtils $authUtils) {
        $error = $authUtils->getLastAuthenticationError();
        $lastUsername = $authUtils->getLastUsername();

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

}

如果用户成功登录,您可以使用
$this->getUser()->getUsername()
在控制器中获取用户名(无论您的getter看起来像什么)


如果用户未成功登录,您可以创建一个条令实体并保留失败的尝试,然后稍后调用该实体。这取决于你想用它做什么?

当然可以。祝你好运
{% block body %}
    {% if error %}
        <div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
    {% endif %}

    <form action="{{ path('login') }}" method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="_username" value="{{ last_username }}" />

        <label for="password">Password:</label>
        <input type="password" id="password" name="_password" />

        <input type="hidden" name="_target_path" value="/panel/dashboard"/>
        {#
            If you want to control the URL the user
            is redirected to on success (more details below)
            <input type="hidden" name="_target_path" value="/account" />
        #}

        <button type="submit">login</button>
    </form>
{% endblock %}
$session = $request->getSession();
$username = $session->get('username');