Thinkphp6---关联查询

最近在做Thinkphp框架开发,总结些开发过程中的关联查询语句:

1、基础关联查询

public function admin(){
    // 关联表AdminUser的id  当前主键id
    return $this->hasOne(AdminUser::class,'id','admin_id')->bind(['roleName' => 'realname']);
}

注意:

1、bind:查询出来的字段和当前模型一起。
2、不写,在当前结果的子级。
3、field(['id','realname','user_id']);  必须主表的关联id

或者这样获取指定字段:

// 定义关联(Article 模型)
public function tags()
{
    return $this->belongsToMany(Tag::class, 'article_tag')
        ->field(['id', 'name']); // 指定 Tag 表的字段
}

// 查询
$article = Article::with(['tags' => function($query) {
    $query->field(['id', 'name']); // 动态指定字段
}])->find(1);

2、关联条件查询

// 定义关联(User 模型)
public function articles()
{
    return $this->hasMany(Article::class);
}
// 关联条件查询
$users = User::with(['articles' => function($query) {
    $query->where('category_id', 2); // 关联条件
}])->select();

未完待续...

打完收工!

posted @ 2025-12-11 20:18  帅到要去报警  阅读(6)  评论(0)    收藏  举报