首页 > 解决方案 > 我无法使用此代码记录我的应用程序的第一个用户的原因可能是什么

问题描述

我可以像这个突出显示的那样记录我的第二个用户

在此处输入图像描述

但是第一个,我无法登录,这是我的代码

public function postLogin(Request $request)
    {
        // -> Validate the request. 
        $this->validate(request(), [
            'pin' => 'required|string',
            'password' => 'required|string',
        ]);

        $pin = request()->get('pin');

        $field = filter_var(request()->get('pin'), FILTER_VALIDATE_EMAIL) ? 'email' : 'username';       

        $remember_me = request()->get('remember');

        $password = request()->get('password');

        $user = User::where("${field}",'=',$pin)->first();

        // dd($user);

        if ( is_null($user->confirmed_at) || $user->status === "0") {
            return redirect()->back()->with('flash-message','The account you tried to login was either not yet confirmed by you or activated by one of our admins.');
        }

        else {
            if (Auth::attempt([$field => $pin ,'password' => $password])){
                // dd(auth()->user()->role_id);
                switch(auth()->user()->role_id){
                    /*the roles would be determined*/   
                    case 1 : return redirect()->route("admin.dashboard");
                    case 2 : return redirect()->route("admin.dashboard");
                    case 3 : return redirect()->to('/');            
                }
            }
        }
    }

登录后我得到一个白屏,当我 dd 结果时

        $user = User::where("${field}",'=',$pin)->first();

我明白了 在此处输入图像描述

状态字段是一个enum字段

在此处输入图像描述

这是扩展的

在此处输入图像描述

标签: phplaravel

解决方案


看起来您的密码不正确,因为您没有处理这种情况。那将解释一个空白屏幕。尝试添加这样的东西,看看它是否进入那里。

if (Auth::attempt([$field => $pin ,'password' => $password])){
    // dd(auth()->user()->role_id);
    switch(auth()->user()->role_id){
        /*the roles would be determined*/
        case 1 : return redirect()->route("admin.dashboard");
        case 2 : return redirect()->route("admin.dashboard");
        case 3 : return redirect()->to('/');
    }
} else {
    dd('Auth failed!');
}

推荐阅读