1.登录时使用ORM MODEL,在where条件下获取数据,并使用firstOrFail()方法限制只获取第一项数据,当没有找到该用户数据时,则会显示错误信息。当有多个条件时,后续接着加入->where()方法
$input = request()->all();
$User = User::where('email',$input['email'])->where('type','A')->firstOrFail();
2.到处Eloquent SQL 语法
use DB;
DB::enableQueryLog();
$input = request()->all();
$User = User::where('email',$input['email'])->firstOrFail();
var_dump(DB::getQueryLog());
3.上一节加密密码用的书Hash::make(),验证密码时用Hash::check();原本的withErrors时传入验证器变量$validator,也可以传入错误信息数组的变量
// 檢查密碼是否正確
$is_password_correct = Hash::check($input['password'], $User->password);
if (!$is_password_correct) {
// 密碼錯誤回傳錯誤訊息
$error_message = [
'msg' => [
'密碼驗證錯誤',
],
];
return redirect('/user/auth/sign-in')
->withErrors($error_message)
->withInput();
}
4.验证登录通过后,存入session,使用session()->put(),之后可以重新導向到原先使用者造訪頁面,沒有嘗試造訪頁則重新導向回首頁。redirect()->intended('/');
// session 紀錄會員編號
session()->put('user_id', $User->id);
// 重新導向到原先使用者造訪頁面,沒有嘗試造訪頁則重新導向回首頁
return redirect()->intended('/');
5.Session设置
session的设置都放在config/session.php文件中
6.模板中session数据判断使用session()->has();
@if(session()->has('user_id'))
显示1
@else
显示2
@endif
7.消除session使用session()->forget();
session()->forget('user_id');