我有一个帖子模型,我只需要从用户所属的渠道获得帖子,如果该渠道是私人的,否则从所有渠道获得所有的帖子。公共频道每个人都可以看到,每个帖子都属于一个频道
目前,从我所拥有的代码中,我只能从用户加入的私人渠道获得帖子。我也不能从公共频道获得帖子。$this->对Post模型的模型引用
$this->model->whereHas('channel', function ($q) use ($user){
$q->where('is_hidden', false)
->where('is_private', false)
->whereHas('members', function ($q) use ($user){
$q->where('user_id', $user->id);
}
);
});我应该得到所有的帖子从私人渠道的用户所属的和所有的帖子从公共渠道
发布于 2019-06-10 20:16:18
经过几次试验,我用->where(function($query){})解决了这个问题
$this->model->whereHas('channel', function ($q) use ($user){
$q->where('is_hidden', false)
->where(function ($q) use ($user){
$q->where('is_private', false)
->orWhere(function ($q) use ($user){
$q->where('is_private', true)
->whereHas('members', function ($q) use ($user){
$q->where('user_id', $user->id);
});
});
});
});来自Eloquent nested WHERE statement的got和想法
https://stackoverflow.com/questions/56525576
复制相似问题