繁体   English   中英

如何在Laravel 5.3中使用`getLastAttempted()`?

[英]How to use `getLastAttempted()` in laravel 5.3?

如何在Laravel 5.3中使用getLastAttempted()

$user = auth()->getLastAttempted();
    dd($user);

    if (!$user->activated) {
        return redirect('/login')->with('status', 'This account has not been activated.');
    }

我要检查登录时是否activated了用户( users表中有一个已activated字段),我将上面的代码添加到\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Auth\\AuthenticatesUsers.php login()方法下面\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Auth\\AuthenticatesUsers.php

如下:

    public function login(Request $request)
    {
        $this->validateLogin($request);


        if ($this->hasTooManyLoginAttempts($request)) {
            $this->fireLockoutEvent($request);

            return $this->sendLockoutResponse($request);
        }

// start 
    $user = auth()->getLastAttempted();
        dd($user);

        if (!$user->activated) {
            return redirect('/login')->with('status', 'This account has not been activated.');
        }
   //end     

        if ($this->attemptLogin($request)) {
            return $this->sendLoginResponse($request);
        }


        $this->incrementLoginAttempts($request);

        return $this->sendFailedLoginResponse($request);
    }

dd($user);的结果dd($user); 一片空白。

我该怎么办?

将代码块放在if else语句中更有意义吗?

public function login(Request $request)
    {
        $this->validateLogin($request);


        if ($this->hasTooManyLoginAttempts($request)) {
            $this->fireLockoutEvent($request);

            return $this->sendLockoutResponse($request);
        }

        if ($this->attemptLogin($request)) { 

            // start 
            $user = \Auth::user();
            dd($user);

            if (!$user->activated) {
                //instead of redirecting, increment attempts and send failed response
                $this->incrementLoginAttempts($request); 
                return $this->sendFailedLoginResponse($request);
            }else{
                return $this->sendLoginResponse($request);
            }
            //end     


        }



        $this->incrementLoginAttempts($request);

        return $this->sendFailedLoginResponse($request);
    }

您可以覆盖validateLogin函数:

$this->validate($request, [
        $this->username() => 'required|exists:users,' . $this->username() . ',activated,1',
        'password' => 'required',
    ]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM