限制laravel 5.1中的急切负载

时间:2015-10-08 10:11:53

标签: php laravel eloquent relationships

我需要知道如何才能使约束工作。

$senderscore = Server::with(['scores' => function($query){
    $query->orderBy('ts', 'desc')->take(1);
}])->get();

当我使用take(1)时,它给了我一个空的得分数组。我只需要最新的(最新的)分数。由于我无法完成这项工作,所以我在没有take(1)的情况下使用它,当我循环浏览刀片服务器时,我只是将数组中的第一个子进行操作。这工作正常我只是不喜欢这样的事实,我现在正在加载并通过8100结果而不是9(每个服务器1个)

仅使用take(1)它只给我1分,但不会先分类到最新。我不知道为什么我不能把它链起来?

得分和服务器具有一对多的关系。一个分数属于一个服务器。一台服务器有很多分数

1 个答案:

答案 0 :(得分:0)

好的,我几乎完成了我的项目,所以我决定再看看这个,几乎立刻就看到了问题。 上面的代码确实有效,只是没有像我预期的那样工作。你绝对可以链接。

我预计每台服务器的得分为1分。但是整个查询只需要1分(当然是DOH)。

为了让我按照我想要的方式工作,我将限制设置为服务器数量。

$senderscore = Server::with(['scores' => function($query){
    $query->orderBy('ts', 'desc')->take(Server::count());
}])->get();

有9个服务器,所以我们只得到9个结果,每个服务器1个

相关问题