laravel中如何通过Eloquent ORM实现数据迁移并附上详细代码示例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计285个文字,预计阅读时间需要2分钟。
个人观点,Laravel 默认的数据类型值值得商榷。例如,ipAddress() 函数的格式为 varchar(45),实际上可以使用 ip2long 转换为 int 进行存储。timestamp() 也可用于存储时间戳。Laravel 还提供了访问器,方便处理数据。
定义中间件
定义一个全局中间件,每一次请求都会被执行。执行 php artisan make:middleware BrowseLog,创建了 app/Http/Middleware/BrowseLog.php 文件。
将创建好的中间件添加到 app/Http/Kernel.php 中,如下
记录数据
最后在中间件中,记录数据到数据库即可,代码如下
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $log = new \App\Models\BrowseLog(); $log->ip_addr = $request->getClientIp(); $log->request_url = $request->path(); $log->city_name = get_city_by_ip(); $log->save(); return $next($request); }
访问几个链接后,去数据库看下
数据写入正常,本次的示例就到此为止。
本文共计285个文字,预计阅读时间需要2分钟。
个人观点,Laravel 默认的数据类型值值得商榷。例如,ipAddress() 函数的格式为 varchar(45),实际上可以使用 ip2long 转换为 int 进行存储。timestamp() 也可用于存储时间戳。Laravel 还提供了访问器,方便处理数据。
定义中间件
定义一个全局中间件,每一次请求都会被执行。执行 php artisan make:middleware BrowseLog,创建了 app/Http/Middleware/BrowseLog.php 文件。
将创建好的中间件添加到 app/Http/Kernel.php 中,如下
记录数据
最后在中间件中,记录数据到数据库即可,代码如下
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $log = new \App\Models\BrowseLog(); $log->ip_addr = $request->getClientIp(); $log->request_url = $request->path(); $log->city_name = get_city_by_ip(); $log->save(); return $next($request); }
访问几个链接后,去数据库看下
数据写入正常,本次的示例就到此为止。

