【发布时间】:2020-03-22 16:16:11
【问题描述】:
我正在 Laravel 的一个项目中工作,我有两张桌子。 - “团队”(表)和“团队”(模型) - “玩家”(表)和“玩家”(模型) 用户可以选择 12 名球员的任意组合来组建自己的球队,所以我试图创建“一对多”的关系,其中每个球员只有一个记录,但许多球队可以有相同的球员。 “玩家”表将“id”列作为主键。 “teams”表有“player1_id”、“player2_id”、“player3_id”等12列,每一列都作为players表中“id”的外键。
我的明确问题是 - 我需要在两个模型(玩家和团队)中放入什么代码,以便我可以通过 Eloquent 访问信息。
到目前为止,我已将此代码放在我的团队表中,但不确定这是否是正确的做法。 对于玩家表,我不知道该写什么。
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Team extends Model
{
//
public function player1()
{
return $this->belongsTo('App\Player', 'player1_id');
}
public function player2()
{
return $this->belongsTo('App\Player', 'player2_id');
}
public function player3()
{
return $this->belongsTo('App\Player', 'player3_id');
}
public function player4()
{
return $this->belongsTo('App\Player', 'player4_id');
}
public function player5()
{
return $this->belongsTo('App\Player', 'player5_id');
}
public function player6()
{
return $this->belongsTo('App\Player', 'player6_id');
}
public function player7()
{
return $this->belongsTo('App\Player', 'player7_id');
}
public function player8()
{
return $this->belongsTo('App\Player', 'player8_id');
}
public function player9()
{
return $this->belongsTo('App\Player', 'player9_id');
}
public function player10()
{
return $this->belongsTo('App\Player', 'player10_id');
}
public function player11()
{
return $this->belongsTo('App\Player', 'player11_id');
}
public function bonus_player()
{
return $this->belongsTo('App\Player', 'bonus_player_id');
}
}
【问题讨论】:
-
看来你没有用主表给球员,只是用主表给球员,并用它的主键作为球队表的参考。
-
你想做什么?
-
我希望能够向任何球队展示所有球员的列表以及他们存储在球员表中的统计数据。
标签: mysql laravel eloquent foreign-keys relationship