您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關使用laravel怎么將操作日志插入到數據庫,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1 . 創建一個中間件
執行: php artisan make:middleware OperationLog
2 . 在中間件中編寫一個writeLog() 或者直接寫在handle里面
<?php namespace App\Http\Middleware; use App\User; use Closure; use Illuminate\Support\Facades\Auth; class OperationLog { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $input = $request->all(); //操作的內容 $path = $request->path(); //操作的路由 $method = $request->method(); //操作的方法 $ip = $request->ip(); //操作的IP $usernum = $request->usernum; //操作人(要自己獲取) self::writeLog($usernum,$input,$path,$method,$ip); return $next($request); } public function writeLog($usernum,$input,$path,$method,$ip){ $user = User::where('usernum',$usernum)->first(); if($user) { $user_id = $user->userid; } $log = new \App\Models\OperationLog(); $log->setAttribute('user_id', $user_id); $log->setAttribute('path', $path); $log->setAttribute('method', $method); $log->setAttribute('ip', $ip); $log->setAttribute('input', json_encode($input, JSON_UNESCAPED_UNICODE)); $log->save(); } }
3 .創建一個OperationLog模型(這里我放在Models文件夾下了)
執行 : php artisan make:model Models\OperationLog
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class OperationLog extends Model { //定義表 protected $table = "operation_log"; //定義主鍵 protected $primaryKey = "id"; }
4 . 將中間件注冊到Kernel.php 文件
/** * The application's global HTTP middleware stack. * * 這些中間件是在對應用程序的每次請求中運行的 * * @var array */ protected $middleware = [ ......., ......., ......., \App\Http\Middleware\OperationLog::class, ];
看完上述內容,你們對使用laravel怎么將操作日志插入到數據庫有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。