您的位置:首页 > 教程 > PHP编程 > 实现laravel 插入操作日志到数据库的方法

实现laravel 插入操作日志到数据库的方法

2020-09-04 08:29:26 来源:易采站长站 作者:

实现laravel 插入操作日志到数据库的方法,操作,中间件,创建一个,定义,是在

实现laravel 插入操作日志到数据库的方法

易采站长站,站长之家为您整理了实现laravel 插入操作日志到数据库的方法的相关内容。

1 . 创建一个中间件

执行: php artisan make:middleware OperationLog

2 . 在中间件中编写一个writeLog() 或者直接写在handle里面

<?phpnamespace 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

<?phpnamespace 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 插入操作日志到数据库的方法的详细介绍。欢迎大家对实现laravel 插入操作日志到数据库的方法内容提出宝贵意见

微信扫一扫

易采站长站微信账号