laravel實現(xiàn)登錄時監(jiān)聽事件,添加登錄用戶的記錄方法
一、執(zhí)行,php artisan make:event AdminLoginEvent 命令,Laravel目錄\app\Events會生成AdminLoginEvent.php文件,
二、我們先在\app\Providers目錄下找到EventServiceProvider.php文件,該文件內(nèi)有一個Events-Listeners數(shù)組來保存事件和監(jiān)聽者的映射關(guān)系:
protected $listen = [ 'App\Events\AdminLoginEvent' => [ 'App\Listeners\AdminLogListener', ], ];
三、執(zhí)行,php artisan event:generate 命令,Laravel\app\Listeners目錄下會生成AdminLogListener.php文件在文件里寫一些業(yè)務(wù):
<?php namespace App\Listeners; use App\Business\AdminLogBiz; use Illuminate\Contracts\Queue\ShouldQueue; use Common; class AdminLogListener implements ShouldQueue { private $adminLogBiz; /** * Create the event listener. * UserLogListener constructor. * @param AdminLogBiz $adminLogBiz */ public function __construct(AdminLogBiz $adminLogBiz) { $this->adminLogBiz = $adminLogBiz; } /** * Handle the event. * * @param object $event * @return void */ public function handle($event) { $admin = $event->admin; $data = []; $data['admin_id'] = $admin->id; $data['admin_username'] = $admin->truename; $data['remote_ip'] = Common::getClientIP(); $data['location'] = isset($ipInfo['city']) ? $ipInfo['city'] : ''; $userName = empty($admin->truename) ? $admin->mobile : $admin->truename; $data['log_code'] = 'login'; $data['log_content'] = $userName . '用戶登陸'; $this->adminLogBiz->add($data); } }
四、觸發(fā)這個事件,在用戶登錄的地方:
use App\Events\AdminLoginEvent; /** * 登錄 * * @param Request $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function signin(Request $request) { $username = $request->username; $password = $request->password; if (Auth::guard('admin')->attempt(array('username' => $username, 'password' => $password))) { if (Auth::guard('admin')->user()->status) { $this->logout($request); return redirect('/admin/login')->with('error', '賬號已被鎖定'); } else { event(new AdminLoginEvent(Auth::guard('admin')->user())); return redirect('admin/index'); } } else { return redirect('admin/login')->with('error', '賬戶或密碼錯誤'); } }
這樣就完成了整個用戶登錄的監(jiān)聽事件,當用戶登錄的時候表就會添加用戶登錄的信息。
以上這篇laravel實現(xiàn)登錄時監(jiān)聽事件,添加登錄用戶的記錄方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決PHPstudy Apache無法啟動的問題【親測有效】
這篇文章主要介紹了PHPstudy Apache無法啟動的問題及解決方法【親測有效】,本文給大家總結(jié)了三種方法供大家參考,需要的朋友可以參考下2020-10-10PHP模板引擎Smarty內(nèi)置變量調(diào)解器用法詳解
這篇文章主要介紹了PHP模板引擎Smarty內(nèi)置變量調(diào)解器用法,結(jié)合實例形式詳細分析了Smarty中的常用內(nèi)置變量調(diào)節(jié)器定義與使用技巧,需要的朋友可以參考下2016-04-04114啦源碼(114la)不能生成地方房產(chǎn)和地方報刊問題4級頁面0字節(jié)的解決方法
做了個網(wǎng)址導航站,用的是114la的源碼,沒想到里面有很多問題,官方也沒出補丁,沒辦法,自己學著改吧2012-01-01