我需要知道如何才能使约束工作。
$senderscore = Server::with(['scores' => function($query){
$query->orderBy('ts', 'desc')->take(1);
}])->get();
当我使用take(1)时,它给了我一个空的得分数组。我只需要最新的(最新的)分数。由于我无法完成这项工作,所以我在没有take(1)的情况下使用它,当我循环浏览刀片服务器时,我只是将数组中的第一个子进行操作。这工作正常我只是不喜欢这样的事实,我现在正在加载并通过8100结果而不是9(每个服务器1个)
仅使用take(1)它只给我1分,但不会先分类到最新。我不知道为什么我不能把它链起来?
得分和服务器具有一对多的关系。一个分数属于一个服务器。一台服务器有很多分数
答案 0 :(得分:0)
好的,我几乎完成了我的项目,所以我决定再看看这个,几乎立刻就看到了问题。 上面的代码确实有效,只是没有像我预期的那样工作。你绝对可以链接。
我预计每台服务器的得分为1分。但是整个查询只需要1分(当然是DOH)。
为了让我按照我想要的方式工作,我将限制设置为服务器数量。
$senderscore = Server::with(['scores' => function($query){
$query->orderBy('ts', 'desc')->take(Server::count());
}])->get();
有9个服务器,所以我们只得到9个结果,每个服务器1个