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();