【发布时间】:2019-09-11 20:11:43
【问题描述】:
我想做这样的事情,但使用 Eloquent:get latest record for each ID
就我个人而言,我有三个表:Game、Assignments、Users。
游戏通过分配表分配给用户。但是,当需要将游戏分配给新用户时,我只需进行新的分配,然后为每个游戏取消最新的分配。
我的最终目标是能够获取任何给定用户分配给他们的游戏集合。但是,要做到这一点,我首先需要能够查询分配并过滤掉任何不是该给定游戏 ID 的最新分配。
有什么想法吗?我一直在尝试一些事情(见下文)但没有成功。
游戏功能(作品):
public function latestAssignment() {
return $this->hasOne('App\Models\Game_Assignment', 'game_id')->latest();
}
Game_Assignment 函数:
public function isLatestAssignment() {
if($this->game->latestAssignment()->id == $this->id) {
return true;
} else {
return false;
}
}
用户函数(抛出错误):
public function current_game_assignments() {
return $this->hasMany('App\Models\Game_Assignment', 'statistician_id')->where('isLatestAssignment', true);
}
让我知道你们认为我能做什么!
【问题讨论】:
-
一个游戏一次只能分配一个用户吗?换句话说,如果用户更改后,如果游戏没有以前的游戏分配,那么您的数据是否具有相同的含义? (不是想删除旧作业,只是想了解你的逻辑!)
-
是的,一个游戏一次只能分配一个用户。但是,数据不会具有相同的含义。在管理端,我希望能够跟踪用户必须多久将游戏重新分配给他们(或他们)
-
当然,在大多数情况下,丢弃数据并不是要走的路。只需要这些信息。
-
当然。谢谢!