我有一个登录页面。它的控制器功能有3种情况:
案例1.电子邮件或密码错误 - >显示错误//正常工作
案例2.未确认电子邮件 - >显示错误//正常工作
案例3.一切都很好 - >应该登录//不工作//显示空白页
我的逻辑:
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(!$user)
{
\Session::flash('message','Login credentials are wrong!');
\Session::flash('alert-class', 'alert-warning');
return redirect()->back();
}
elseif($user->confirmed==1)
{
if(Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword']],$remember))
{
//return redirect()->back();
return redirect()->route('myplace',['username' => $user->username]) ;
}
}
else
{
\Session::flash('message','Please verify your email!');
\Session::flash('alert-class', 'alert-warning');
return redirect()->back();
}
}
答案 0 :(得分:0)
你应该对第二个if。
添加一个else语句if (!$user) {
/* case 1. email or password is wrong */
} elseif ($user->confirmed==1) {
/* Case 3 not working. Add an addition else statement */
if(Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword','confirmed'=>1]],$remember)) {
......
} else {
echo "Login attempt error!";
var_dump(Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword','confirmed'=>1]],$remember))
exit;
}
} else {
/* case 2. email is not confirmed */
}
答案 1 :(得分:0)
这个if语句:
if(Auth::attempt(['email'=>$request['login...etc
没有else
,所以如果不满足此条件,则不会发生任何事情。您需要在此语句中添加else
。
答案 2 :(得分:0)
我刚刚清理了我的数据库然后注册.hooray一切正常!