Laravel5.1 框架模型一对一关系实现与使用方法实例分析
Laravel  /  管理员 发布于 7年前   122
本文实例讲述了Laravel5.1 框架模型一对一关系实现与使用方法。分享给大家供大家参考,具体如下: 这篇文章主要记录模型的一对一关系,关联关系是Model的一种非常方便的功能。 首先我们需要创建两张表和对应的两个模型,第一个模型是用户表,第二个模型是账号表。 这里 我们的逻辑是:一个用户信息下只能有一个账号,一个账号只能被一个用户所拥有,这就是一对一关系。 生成模型和迁移文件: 编写迁移文件(表规格): 编写模型工厂: 使用seeder: 生成数据并使用seeder填入数据: 编写迁移文件(表规格): 首先是账号表,在模型下编写以下代码: 代码解读:belongsTo的第二个和第三个参数是完全可以省略的。如果省略了第二个和第三个参数的话 Laravel根据方法名自动填充,会把第二个参数填充成 "user_id" 第三个参数填充 "id",但是我们现在必须这样写,因为我自定义的外键是user_info_id 如果Laravel自动填充的话是找不到这个外键的 所以我们要手动的添加下。 belongsTo的第二个参数是 Account这个模型要用'user_info_id'外键去关联UserInfo模型。 belongsTo的第三个参数是 Account这个模型要关联UserInfo的主键名。 然后是用户信息表: 代码解读:hasOne的第二个和第三个参数也是完全可以省略的。如果省略了第二个和第三个参数的话 Laravel会自动填充,会把第二个参数填充成 "user_info_id" 第三个参数填充 "id"。 使用: 更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。1 实现一对一关系
1.1 准备工作
1.1.1 用户信息表
php artisan make:model UserInfo -m
public function up() { Schema::create('user_infos', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('phone_number'); // 手机号 $table->timestamps(); }); }
// user_info$factory->define(App\UserInfo::class, function (Faker\Generator $faker) { return [ 'name' => $faker->name, 'phone_number' => $faker->phoneNumber, ];});
php artisan make:seeder UserInfoSeeder
public function run() { factory(\App\UserInfo::class, 10)->create(); } public function run() { Model::unguard(); $this->call('UserInfoSeeder'); Model::reguard(); }
php artisan migrate:seeder
1.1.2 账号表
public function up() { Schema::create('accounts', function (Blueprint $table) { $table->increments('id'); $table->string('user_name'); // 用户名 $table->integer('user_info_id'); // 关联键 $table->timestamps(); }); }
2 编写关系
public function user() { return $this->belongsTo(UserInfo::class, 'user_info_id', 'id'); }
public function account() { return $this->hasOne(Account::class); }
// $account = App\Account::find(1);// dd($account->user); $userInfo = App\UserInfo::find(1); dd($userInfo->account);
您可能感兴趣的文章:
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号