一对一关联,我们选择两张表来做演示,首先看下两张表的结果对比;
PS:主表主键设为 id,关联主键默认就是 id,可以默认不写;
PS:附表的外键设置为 user_id,即:主表名_主键,吻合可默认不写;
由于之前 Models 下的 User.php 模型代码很多了,改成.bak 后重建;
创建两个 model,User.php 和 Profile.php,并使用命令实现提示;
php artisan ide-helper:models
//User.php,一对一关联 Profile 表
public function profile() { //参数 1 或:'App\Http\Models\Profile' //参数 2:默认为 user_id,如不是需要指明 //参数 3:默认 id,如不是需要指明 return $this->hasOne(Profile::class, 'user_id', 'id'); }
$profiles = User::find(19)->profile; return $profiles;
public function user() { return $this->belongsTo(User::class, 'user_id', 'id'); } $users = Profile::find(1)->user; return $users;