通过限制雄辩关系的结果来减少查询加载时间

时间:2016-05-20 08:43:01

标签: php mysql laravel eloquent

我有以下范围。

public function scopeWithPosts($query)
{
    return $query->with(
        ['posts' => function($query)  {
            $query->limit(2);   // Line 5
        }]
        // further eager loads
        // e.g. ['posts.*']
    );
}

我的关系如下:

public function posts()
{
    return $this->hasMany('Models\Post', 'user_id', 'user_id');
}

我正在尝试执行上述操作以减少查询的加载时间。问题是,每当我尝试限制时,它似乎都不起作用。

例如,对于第5行,我得到1个结果,如果我删除,我得到5个结果。

我出错的任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您是否已经测试过take方法?

$query->take(2);

对于更精确的限制,您可以使用

$query->skip(10)->take(2);