1 . 創(chuàng)建一個(gè)中間件
執(zhí)行: php artisan make:middleware OperationLog
2 . 在中間件中編寫(xiě)一個(gè)writeLog() 或者直接寫(xiě)在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(); //操作的內(nèi)容
$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 .創(chuàng)建一個(gè)OperationLog模型(這里我放在Models文件夾下了)
執(zhí)行 : 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 . 將中間件注冊(cè)到Kernel.php 文件
/**
* The application's global HTTP middleware stack.
*
* 這些中間件是在對(duì)應(yīng)用程序的每次請(qǐng)求中運(yùn)行的
*
* @var array
*/
protected $middleware = [
.......,
.......,
.......,
\App\Http\Middleware\OperationLog::class,
];
大功告成…
以上這篇實(shí)現(xiàn)laravel 插入操作日志到數(shù)據(jù)庫(kù)的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- laravel 獲取某個(gè)查詢的查詢SQL語(yǔ)句方法
- laravel實(shí)現(xiàn)查詢最后執(zhí)行的一條sql語(yǔ)句的方法
- Laravel使用原生sql語(yǔ)句并調(diào)用的方法
- Laravel獲取所有的數(shù)據(jù)庫(kù)表及結(jié)構(gòu)的方法
- Laravel監(jiān)聽(tīng)數(shù)據(jù)庫(kù)訪問(wèn),打印SQL的例子