Laravel 仅显示组中有项目的可见项目和组
我有这两个查询,但每一个都得到了一半的正确结果 我有Laravel 仅显示组中有项目的可见项目和组,laravel,Laravel,我有这两个查询,但每一个都得到了一半的正确结果 我有组表格和项目表格。 您可以将项目记录设置为不可见。 您可以将组记录设置为不可见。 在某些情况下,组记录没有任何相关的项记录(空组) 我想选择所有可见且具有相关项的组记录 这将返回空的组记录(没有相关项的组) 这个函数只返回包含项目记录的组,但也包含隐藏的项目 不确定我是否100%理解,所以我已经尽可能简单地写了以下内容,如果它不起作用,你可以把它分开 左侧联接应允许没有项目的组(空组) 使用 解释…?@OluwatobiSamuelOmisak
组
表格和项目
表格。您可以将
项目
记录设置为不可见。您可以将
组记录设置为不可见。
在某些情况下,组
记录没有任何相关的项
记录(空组)
我想选择所有可见且具有相关项的组记录
这将返回空的组记录(没有相关项的组)
这个函数只返回包含项目记录的组,但也包含隐藏的项目
不确定我是否100%理解,所以我已经尽可能简单地写了以下内容,如果它不起作用,你可以把它分开
左侧联接应允许没有项目的组(空组)
使用
解释…?@OluwatobiSamuelOmisakin whereHas()方法检查模型,with()方法检查关系,并从数据库中检索特定记录。
return $this->model->with( [ 'items' => function($query){
$query->where('invisible','=',FALSE)->orderBy('description', 'ASC');
}])
->where("hos_id",$hos_id)
->where('invisible','=',FALSE)
->orderBy('description', 'asc')
->get();
return $this->model->with('items')
->whereHas('items',function ($query){
$query->where('invisible','=',FALSE)->orderBy('description', 'ASC');
})
->where("hos_id",$hos_id)
->where('invisible','=',FALSE)
->orderBy('description', 'asc')
->get();
Group::leftJoin('items', function ($join) {
$join->on('groups.id', '=', 'items.group_id')
->where('invisible', false);
})
->where('invisible', false)
->get();
return $this->model->with(['items' => function ($query){
$query->where('invisible','=',FALSE)->orderBy('description', 'ASC');
}])
->whereHas('items',function ($query){
$query->where('invisible','=',FALSE)->orderBy('description', 'ASC');
})
->where("hos_id",$hos_id)
->where('invisible','=',FALSE)
->orderBy('description', 'asc')
->get();