主导语言数据库可以说是后端开发中最常用也是最重要的部分。Laravel提供了一个非常实用的EloquentORM模型类,与数据库交互简单直观。同时,使用数据迁移来管理数据库,可以与团队共享和编辑。有关两者的更多信息,请参阅下面的文档。以下两个作为例子。需求是记录用户浏览记录。请不要将此示例带入实际项目中,本文只是示例。实际物品按要求记录,选择入库方式。创建数据表的第一步当然是创建数据表。使用artisan命令可以轻松创建模型和数据迁移。phpartisanmake:modelModels/BrowseLog-m,-m参数在创建模型的同时创建一个数据迁移文件。执行以上命令后,新增了app/Models/BrowseLog.php和database/migrations/{now_date}_create_browse_logs_table.php两个文件。接下来编辑{now_date}_create_browse_logs_table.php以创建数据表/***运行迁移。**@returnvoid*/publicfunctionup(){Schema::create('browse_logs',function(Blueprint$table){$table->increments('id');$table->ipAddress('ip_addr')->comment('ip地址');$table->string('request_url',20)->comment('requesturl');$table->char('city_name',10)->comment('获取根据ip的城市名称');$table->timestamps();});DB::statement("ALTERTABLE`browse_logs`comment'浏览记录表'");//表注释}代码如上,编辑后执行命令phpartisanmigrate,创建所有未迁移的数据表。下面个人感觉,laravel的默认数据类型值得商榷。比如ipAddress(),数据格式是varchar(45),其实可以通过ip2long转换成int进行存储。timestamps()也可以使用时间戳进行存储。当然,laravel也提供了accessors&modifiers方便维护。可以在实际项目中自行选择。定义中间件定义了一个全局中间件,它将为每个请求执行。执行phpartisanmake:middlewareBrowseLog创建app/Http/Middleware/BrowseLog.php文件。将创建好的中间件添加到app/Http/Kernel.php中,记录数据如下最后在中间件中记录数据到数据库,代码如下/***处理一个传入的请求。**@param\Illuminate\Http\Request$request*@param\Closure$next*@returnmixed*/publicfunctionhandle($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();$日志->保存();返回$next($request);}access链接几下后,再去数据库中查看数据是否正常写入,本例到此结束。参考资料:数据库操作-迁移、EloquentORM-快速入门。
