laravel数据迁移与Eloquent ORM的详细介绍(代码示例)

互联网 19-1-8
本篇文章给大家带来的内容是关于laravel 数据迁移与Eloquent ORM的详细介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

数据库可以说是后端开发最常用,也是最重要的部分。laravel 提供了很实用的 Eloquent ORM 模型类,简单、直观的与数据库进行交互。同时使用数据迁移管理数据库,可以与团队进行共享以及编辑。二者的更多介绍请查看下方的文档。以下使用二者进行示例,需求是记录用户浏览记录。请勿将本示例带入实际项目中,本文仅作示例。实际项目根据需求进行记录,以及选择存储方式。

创建数据表

/**      * 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 也提供了 访问器 & 修改器 方便维护。各位实际项目中自行选择。

定义中间件

记录数据

最后在中间件中,记录数据到数据库即可,代码如下

/**      * 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);     }

访问几个链接后,去数据库看下

数据写入正常,本次的示例就到此为止。

以上就是laravel数据迁移与Eloquent ORM的详细介绍(代码示例)的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: PHP
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:Laravel框架中Pipeline的解析(代码示例)

相关资讯