Thinkphp 6.0关联模型初探

本节课我们来了解模型中关联模型的定义方式,并实现两张表的关联。
一.关联模型定义
1. 关联模型,顾名思义,就是将表与表之间进行关联和对象化,更高效的操作数据;
2. 我们已经有了一张 tp_user 表,主键为: id ;我们需要一个附属表,来进行关联;
3. 附属表: tp_profile ,建立两个字段: user_id hobby ,外键是 user_id

Thinkphp 6.0关联模型初探_第1张图片

 

4. 创建 User 模型和 Profile 模型,均为空模型;

5. User 模型端,需要关联 Profile ,具体方式如下:
class User extends Model
{
    public function profile()
    {
        //hasOne 表示一对一关联,参数一表示附表,参数二外键,默认 user_id
        return $this->hasOne(Profile::class,'user_id');
    }
}

6. 创建一个控制器用于测试输出: Grade.php
$user = UserModel::find(21);
return json($user->profile);
return $user->profile->hobby;

7. 对于关联方式,系统提供了 9 种方案,具体如下 :
Thinkphp 6.0关联模型初探_第2张图片

 

8. 上面的例子,我们采用了一对一的关联模型,它还有相对的反向关联;
class Profile extends Model
{
    public function user()
    {
        return $this->belongsTo(User::class);
    }
}
$profile = ProfileModel::find(1);
return $profile->user->email;

9. 正反向关联也就是关联关系和相对的关联关系,具体如下表:
Thinkphp 6.0关联模型初探_第3张图片

 

你可能感兴趣的:(php,php)