我不确定这是否可能在laravel中,因为我没有看到一个例子,但如果它确实会有帮助。
假设我有一个User
和一个Post
对象,该帖子有一些复杂的逻辑和活动状态,我希望将其封装在其中。
class Post {
static public scopeActive($query) {
// Fuzzy logic for determining activity
}
}
使用帖子查询用户我认为我可以
User::whereHas('Post');
但是我在尝试扩展此语法以应用Active范围时迷失了方法,因为这仅适用于post对象。
我想查询有效帖子的用户。
答案 0 :(得分:0)
这样做。
User::whereHas('Post', function($q)
{
$q->active();
}
);
文档仅说明$ q是'查询'事实上它是一个' Post' Builder对象很棒。
另外值得注意的是,这不会在Post上加入,只检查具有给定查询属性的Post对象的exsistance。