2016-12-30 44 views
0

我有一个登录页面,显示错误的Flash通知。突然闪烁通知功能停止工作

以下是错误的,它表明闪光灯通知:

1.当用户还没有证实他/她的电子邮件ID。 2.用户输入错误的登录凭证。

它工作正常,前几天,但现在它显示错误

undefined index password

我的逻辑:

public function postSignIn(Request $request) 
    { 

     $this->validate($request,[ 

       'loginEmail'=> 'required' , 
       'loginPassword' => 'required' 

       ]); 


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

     $user=User::where('email', $request['loginEmail'])->first(); 


     if(Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword'],'confirmed'=>1],$remember)) 
     { 




      //return redirect()->route('myplace'); 
      return redirect()->route('myplace',['username' => $user->username]) ; 
     } 
     if(Auth::attempt(['confirmed'=>0])) 
     { 
\Session::flash('message','Please verify your email!'); 
     \Session::flash('alert-class', 'alert-warning'); 
     return redirect()->back(); 
     } 
     if(!Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword']])) 
     { 
     \Session::flash('message','Login credentials are wrong!'); 
     \Session::flash('alert-class', 'alert-warning'); 
      return redirect()->back(); 
      } 


    } 
+0

检查完整的错误消息,它说明导致错误的类和行。 –

+0

@AlexeyMezenin确切的错误:在ErrorException线/home/aksoutco/public_html/laravel/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php 116: 未定义指数:密码 –

回答

0

的问题是在这里:

if(Auth::attempt(['confirmed'=>0])) 

不能使用attempt()无需传递密码。因此,请尽量使用您在代码中稍后使用的相同代码:

Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword']]) 
+0

我试图: 如果(AUTH: :尝试(['email'=> $ request ['loginEmail'],'password'=> $ request ['loginPassword'],'confirmed'=> 0]))但是,发生电子邮件未被确认 –

+0

nope没有包和如何手动? –

+0

既然你有用户的电子邮件,你可以通过电子邮件获取用户'$ user = User :: where('email',$ request ['loginEmail']) - > first();'然后检查是否这是确认与否。我没有看到数据库结构,但代码将如下所示:'if($ user-> confirmed == 1)' –