在laravel 4.2中查询连接对象的范围

时间:2015-03-18 16:53:46

标签: php laravel-4 eloquent

我不确定这是否可能在laravel中,因为我没有看到一个例子,但如果它确实会有帮助。

假设我有一个User和一个Post对象,该帖子有一些复杂的逻辑和活动状态,我希望将其封装在其中。

class Post {
    static public scopeActive($query) {
        // Fuzzy logic for determining activity
    }
}

使用帖子查询用户我认为我可以

User::whereHas('Post');

但是我在尝试扩展此语法以应用Active范围时迷失了方法,因为这仅适用于post对象。

我想查询有效帖子的用户。

1 个答案:

答案 0 :(得分:0)

这样做。

User::whereHas('Post', function($q)
    {
        $q->active();
    }
);

文档仅说明$ q是'查询'事实上它是一个' Post' Builder对象很棒。

另外值得注意的是,这不会在Post上加入,只检查具有给定查询属性的Post对象的exsistance。