导语
数据库可以说是后端开发最常用,也是最重要的部分。laravel 提供了很实用的 Eloquent ORM 模型类,简单、直观的与数据库进行交互。同时使用数据迁移管理数据库,可以与团队进行共享以及编辑。二者的更多介绍请查看下方的文档。
以下使用二者进行示例,需求是记录用户浏览记录。请勿将本示例带入实际项目中,本文仅作示例。实际项目根据需求进行记录,以及选择存储方式。
创建数据表
第一步当然是创建数据表了。使用 artisan
命令可以很方便的创建模型以及数据迁移。php artisan make:model Models/BrowseLog -m
,-m
参数在创建模型的同时也创建了数据迁移文件。执行过上述命令后,新增了 app/Models/BrowseLog.php
以及 database/migrations/{now_date}_create_browse_logs_table.php
两个文件。
接下来编辑 {now_date}_create_browse_logs_table.php
来创建数据表
/** * Run the migrations. * * @return void */ public function up() { Schema::create('browse_logs', function (Blueprint $table) { $table->increments('id'); $table->ipAddress('ip_addr')->comment('ip 地址'); $table->string('request_url', 20)->comment('请求 url'); $table->char('city_name', 10)->comment('根据 ip 获取城市名称'); $table->timestamps(); }); DB::statement("ALTER TABLE `browse_logs` comment'浏览记录表'"); // 表注释 }
代码如上,编辑完成后,执行命令 php artisan migrate
会将所有未执行迁移的数据表创建。如下
个人感觉,laravel 默认的数据类型值得商榷。例如 ipAddress()
,数据格式为 varchar(45)
,其实可以使用 ip2long
转换成 int
进行存储。timestamps()
也可以使用时间戳进行存储。当然 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); }
访问几个链接后,去数据库看下
数据写入正常,本次的示例就到此为止。
参考资料:数据库操作 —— 迁移、Eloquent ORM —— 快速入门。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 杨千嬅.2002-万紫千红演唱会2CD(2024环球红馆40复刻系列)【环球】【WAV+CUE】
- 郭采洁.2015-Begin.Again爱造飞鸡【华纳】【FLAC分轨】
- 许志安.2011-ON.AND.ON【东亚】【WAV+CUE】
- 潘秀琼.1994-木兰从军【名将】【WAV+CUE】
- 纯音入心系列纯音乐《古筝系列-当流行乐遇到古筝》1CD[MP3][1.9GB]
- 纯音入心系列纯音乐《精选古筝名曲100首》1CD[MP3][388.7MB]
- 纯音入心系列纯音乐《天籁古筝》1CD[MP3][331MB]
- 男女对唱典藏天碟《发烧对唱·那个季节里的歌DSD》10CD[WAV]
- 群星2010-歌林精选辑[歌林][WAV+CUE]
- TrioZimbalist-PianoTriosofWeinberg,Auerbach,Dvorak(2024)[24-44,1]wav
- 群星.1992-滚石第一流台湾歌·12王牌大车拼【滚石】【WAV+CUE】
- 林子祥.1984-创作歌集【华纳】【WAV+CUE】
- 周汤豪.2010-周汤豪【华纳】【FLAC分轨】
- Mozart-TheStringQuintets-AmadeusQuartet,CecilAronowitz(2017)[24-44,1][WAV+CUE]
- JamesWilliamsDennisIrwin-Focus(2024,Red)[24-48]FLAC