渴望在一个模型中多次加载相同的模型
Eager loading same model multiple times in a model
我有一个名为 Player 的模型,具有 'id' 和 'shortname'。
我有另一个名为 Team 的模型,其中包含 'id'、'teamname'、'player_1_id'、'player_2_id' 和 'player_3_id'。
我正在尝试使用关系:
// 在模特队中
public function players()
{
return $this->hasOne('App\Player', 'id','player_1_id')
->hasOne('App\Player', 'id','player_2_id')
->hasOne('App\Player', 'id','player_3_id');
}
// 在控制器中
$resource = Team::with('players')->get();
不起作用。
在这种情况下,使用预加载的最佳(最快)方式是什么?
提前致谢...
您应该阅读有关数据库规范化的内容。在团队数据库中存储 player_1_id
、player_2_id
和 player_3_id
没有意义。如果团队将包含 20 个玩家怎么办?您将创建另一个字段?
您应该将 team_id
添加到玩家模型中(以防玩家始终只属于一个团队)或创建额外的 table 来存储玩家和团队之间的联系。
我有一个名为 Player 的模型,具有 'id' 和 'shortname'。 我有另一个名为 Team 的模型,其中包含 'id'、'teamname'、'player_1_id'、'player_2_id' 和 'player_3_id'。
我正在尝试使用关系:
// 在模特队中
public function players()
{
return $this->hasOne('App\Player', 'id','player_1_id')
->hasOne('App\Player', 'id','player_2_id')
->hasOne('App\Player', 'id','player_3_id');
}
// 在控制器中
$resource = Team::with('players')->get();
不起作用。
在这种情况下,使用预加载的最佳(最快)方式是什么? 提前致谢...
您应该阅读有关数据库规范化的内容。在团队数据库中存储 player_1_id
、player_2_id
和 player_3_id
没有意义。如果团队将包含 20 个玩家怎么办?您将创建另一个字段?
您应该将 team_id
添加到玩家模型中(以防玩家始终只属于一个团队)或创建额外的 table 来存储玩家和团队之间的联系。