Laravel 5.7 关系一对多列
Laravel 5.7 Relationship One To Many Columns
我有团队和比赛 table。所有比赛信息保存在比赛 table 两队、获胜队、比赛时间等
匹配 table 我有三个字段 team_1、team_2、winner_team
我想将这些领域与团队 table
联系起来
这是我的代码
团队模型
class Team extends Model
{
public function league()
{
return $this->belongsTo('App\League');
}
public function matchs()
{
return $this->hasMany('App\Match');
}
}
匹配模型
class Match extends Model
{
public function team_1()
{
return $this->belongsTo('App\Team','id');
}
public function team_2()
{
return $this->belongsTo('App\Team','team_2');
}
public function winner()
{
return $this->belongsTo('App\Team','winner');
}
public function league()
{
return $this->belongsTo('App\League');
}
public function teams() {
return $this->team_1()->merge($this->team_2());
}
}
迁移文件
Schema::create('matches', function (Blueprint $table) {
$table->increments('id');
$table->integer('team_1')->unsigned()->index();
$table->integer('team_2')->unsigned()->index();
$table->integer('league_id')->unsigned()->index();
$table->integer('winner')->nullable();
$table->dateTime('match_time');
$table->timestamps();
$table->foreign('team_1')->references('id')->on('teams')
->onDelete('restrict')
->onUpdate('cascade');
$table->foreign('team_2')->references('id')->on('teams')
->onDelete('restrict')
->onUpdate('cascade');
$table->foreign('league_id')->references('id')->on('leagues')
->onDelete('restrict')
->onUpdate('cascade');
$table->foreign('winner')->references('id')->on('teams')
->onDelete('restrict')
->onUpdate('cascade');
});
public function team_1()
{
return $this->belongsTo('App\Team', 'team_1');
}
public function team_2()
{
return $this->belongsTo('App\Team', 'team_2');
}
我有团队和比赛 table。所有比赛信息保存在比赛 table 两队、获胜队、比赛时间等
匹配 table 我有三个字段 team_1、team_2、winner_team 我想将这些领域与团队 table
联系起来这是我的代码
团队模型
class Team extends Model
{
public function league()
{
return $this->belongsTo('App\League');
}
public function matchs()
{
return $this->hasMany('App\Match');
}
}
匹配模型
class Match extends Model
{
public function team_1()
{
return $this->belongsTo('App\Team','id');
}
public function team_2()
{
return $this->belongsTo('App\Team','team_2');
}
public function winner()
{
return $this->belongsTo('App\Team','winner');
}
public function league()
{
return $this->belongsTo('App\League');
}
public function teams() {
return $this->team_1()->merge($this->team_2());
}
}
迁移文件
Schema::create('matches', function (Blueprint $table) {
$table->increments('id');
$table->integer('team_1')->unsigned()->index();
$table->integer('team_2')->unsigned()->index();
$table->integer('league_id')->unsigned()->index();
$table->integer('winner')->nullable();
$table->dateTime('match_time');
$table->timestamps();
$table->foreign('team_1')->references('id')->on('teams')
->onDelete('restrict')
->onUpdate('cascade');
$table->foreign('team_2')->references('id')->on('teams')
->onDelete('restrict')
->onUpdate('cascade');
$table->foreign('league_id')->references('id')->on('leagues')
->onDelete('restrict')
->onUpdate('cascade');
$table->foreign('winner')->references('id')->on('teams')
->onDelete('restrict')
->onUpdate('cascade');
});
public function team_1()
{
return $this->belongsTo('App\Team', 'team_1');
}
public function team_2()
{
return $this->belongsTo('App\Team', 'team_2');
}