网上找到的大部分都是这么说的
//声明关系
public function post() {
return $this->hasOne('App\Models\post', 'user_id', 'id');
}
//关联查询
$user4 = User::with(['post' => function($query) {
$query->select(['id','status','user_id']);
$query->where('status', '=', 2);
}])->where('id', '<', 10)->select(['id','usename'])->get()->toArray();
//如果需要过滤掉结果为空的结果集
User::whereHas('post',function($query) {
$query->select(['id','status','user_id']);
$query->where('status', '=', 2);
})->where('id', '<', 10)->select(['id','usename'])->get()->toArray();
其他的都还好,要命就要命在select中的字段上,需要查询的字段必须,必须,必须包含关联的两个key,在这里就是’user_id’, ‘id’,不然的话关联数据能查出来,但是 是null