這是一個棘手的問題。但我會再添加一個名爲player_records的表。具有以下屬性
player_id
team_id.
start_date
end_date
在每個模型中,我都有幫助方法來獲取例如活動球員。
這裏是團隊模型。
class Team extends Model
{
public function playerRecords() {
return $this->hasMany(PlayerRecord::class);
}
public function activePlayers() {
return $this->playerRecords()->where('start_at', '<=', Carbon::now())->where('ends_at', '>=', Carbon::now())->with('player')->get()->pluck('player');
}
}
這裏是球員的典範
class Player extends Model
{
public function playerRecords() {
return $this->hasMany(PlayerRecord::class);
}
}
這裏是PlayerRecord模型
class PlayerRecord extends Model
{
public function player() {
return $this->hasMany(Player::class);
}
}
謝謝愛德華回答。我可以看到你的觀點。我有一個問題,但。這樣我們每次需要PlayerRecord時都會做一個額外的查詢(這個確實不算太多!)。這是最好的方式嗎? –
確實有一個額外的查詢。但我目前無法找出更好的解決方案。 –