Laravel 5.4 Eloquent where parent
Posted
技术标签:
【中文标题】Laravel 5.4 Eloquent where parent【英文标题】: 【发布时间】:2018-02-21 04:33:50 【问题描述】:所以我设置了两个模型,用户和帖子。 Post 有一个belongsTo
设置的用户,而用户有一个hasMany
设置的帖子。
在获取我的所有帖子时,我想确保该用户未被禁止。 Banned 是数据库中名为ban
的列中的一个整数,我想确保它等于0。我最初循环浏览帖子,检查以确保用户没有被禁止,然后将其推送到数组并通过该数组到工作正常的视图。但是,我现在想启用分页,但由于我没有传入 eloquent 对象,所以它被破坏了。
这是我现在的雄辩:
$posts = Post::where('status', '>', 1)->orderBy('published_date', 'desc')->paginate(10);
【问题讨论】:
应该通过哪个模型和哪个字段来检查用户? 【参考方案1】:使用whereHas()
$posts = Post::where('status', '>', 1)->whereHas('user', function($q)
$q->where('ban', 0);
)->orderBy('published_date', 'desc')->paginate(10);
我假设,您在 User
模型上与 Post
模型有 user
关系。
【讨论】:
以上是关于Laravel 5.4 Eloquent where parent的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 5.4 (Eloquent ORM) 中自动删除 NESTED 相关行
Laravel 5.4:使用eloquent和fillable字段更新多个表的多个模型