• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    laravel 数据迁移与 Eloquent ORM的实现方法

    导语

    数据库可以说是后端开发最常用,也是最重要的部分。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 —— 快速入门。

    您可能感兴趣的文章:
    • Laravel框架数据库迁移操作实例详解
    • laravel解决迁移文件一次删除创建字段报错的问题
    • laravel 执行迁移回滚示例
    • Laravel5.5 数据库迁移:创建表与修改表示例
    • 关于laravel 数据库迁移中integer类型是无法指定长度的问题
    • Laravel5.7 数据库操作迁移的实现方法
    • 详细Laravel5.5执行表迁移命令出现表为空的解决方案
    • Laravel中数据迁移与数据填充的详细步骤
    • Laravel实现数据库迁移与支持中文的填充
    • Laravel 的数据库迁移的方法
    • Laravel 5框架学习之数据库迁移(Migrations)
    • 使用git迁移Laravel项目至新开发环境的步骤详解
    上一篇:PHP中的Iterator迭代对象属性详解
    下一篇:Laravel5.7 Eloquent ORM快速入门详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    laravel 数据迁移与 Eloquent ORM的实现方法 laravel,数据,迁移,与,Eloquent,