Laravel查询 - 并且在哪里

mor*_*rne 2 laravel

我的查询有问题

当我像这样运行它时,我得到所有组织的所有组和项目(表项).它的意思是只从org_id它们可见的地方获取它们.

return $this->model->with( [ 'items' => function($query){$query->where('invisible','=',FALSE)->orWhere('invisible', '=', null)->orderBy('description', 'ASC');} ] )->where("org_id",$org_id)->where('invisible','=',FALSE)->orWhere('invisible', '=', null)->orderBy('description', 'asc')->get();
Run Code Online (Sandbox Code Playgroud)

如果我像这样运行它(删除invisible组的查询)它工作正常.

return $this->model->with( [ 'items' => function($query){$query->where('invisible','=',FALSE)->orWhere('invisible', '=', null)->orderBy('description', 'ASC');} ] )->where("hos_id",$hos_id)->orderBy('description', 'asc')->get();
Run Code Online (Sandbox Code Playgroud)

我是怎么做的

WHERE orf_id= org_id
AND ( invisible = false OR invisible = NULL )
Run Code Online (Sandbox Code Playgroud)

Pra*_*mil 5

你可以实现这个目标

$query->where(function($query){
    $query->where('invisible','=',FALSE)->orWhereNull('invisible');
})
Run Code Online (Sandbox Code Playgroud)

所以最后你的代码就像

return $this->model->with( [ 'items' => function($query){
    $query->where('invisible','=',FALSE)->orWhereNull('invisible')->orderBy('description', 'ASC');
}])
->where("org_id",$org_id)
->where(function($query){
    $query->where('invisible','=',FALSE)->orWhereNull('invisible');
})
->orderBy('description', 'asc')->get();
Run Code Online (Sandbox Code Playgroud)