因为您可以使用Laravel框架轻松定义关系。我想知道nation_id
表中有athletes
是否合适。
我在Laravel中建立了以下关系:
国家模式:
public function athletes() {
return $this->hasMany(Athlete::class, 'id', 'nation_id');
}
分会模特:
public function nation() {
return $this->belongsTo(Nation::class, 'nation_id', 'id');
}
public function athletes() {
return $this->hasMany(Athlete::class, 'id', 'club_id');
}
运动员模型:
public function nation() {
return $this->belongsTo(Nation::class, 'nation_id', 'id');
}
public function club() {
return $this->belongsTo(Club::class, 'club_id', 'id');
}
既然你可以做到这一点来获得一个运动员的国家:Athlete::where('id', $id)->first()->club->nation
,我想知道在那里拥有一个国家职能是否是一个好习惯。
答案 0 :(得分:1)
您可以使用hasManyThrough
模型上的Nation
访问Athlete
,而无需在两者之间建立直接关系。
所以在你的 Nation 模型上:
public function clubs()
{
return $this->hasMany(Club::class);
}
public function athletes()
{
return $this->hasManyThrough(Athlete::class, Club::class);
}