首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅在父模型上满足给定条件时才获取模型关系

如何仅在父模型上满足给定条件时才获取模型关系
EN

Stack Overflow用户
提问于 2019-06-10 19:32:58
回答 1查看 44关注 0票数 1

我有一个帖子模型,我只需要从用户所属的渠道获得帖子,如果该渠道是私人的,否则从所有渠道获得所有的帖子。公共频道每个人都可以看到,每个帖子都属于一个频道

目前,从我所拥有的代码中,我只能从用户加入的私人渠道获得帖子。我也不能从公共频道获得帖子。$this->对Post模型的模型引用

代码语言:javascript
复制
$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);
                    }
                );
            });

我应该得到所有的帖子从私人渠道的用户所属的和所有的帖子从公共渠道

EN

回答 1

Stack Overflow用户

发布于 2019-06-10 20:16:18

经过几次试验,我用->where(function($query){})解决了这个问题

代码语言:javascript
复制
$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和想法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56525576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档