вот моя схема базы данных
и у меня есть эти модели:
Я запутался, как определить отношения между matches
а также teams
в моделях
вот что я делал до сих пор …
User.php
public function bets()
{
return $this->hasMany('\App\Bet');
}
Bet.php
public function user()
{
return $this->belongsTo('\App\User');
}
public function match()
{
return $this->belongsTo('\App\Match');
}
Match.php
public function bets()
{
return $this->hasMany('\App\Bet');
}
//?????????????
Team.php
//?????????????
на самом деле то, что мне нужно, это код, который должен быть размещен вместо //???...
в обоих Team.php
а также Match.php
так что я могу легко делать такие вещи …
$team->matches();
$match->team1();
$match->team2();
Спасибо
Это должно быть что-то вроде этого:
Match.php
public function team1()
{
return $this->belongsTo('\App\Team', 'team1_id');
}
public function team2()
{
return $this->belongsTo('\App\Team', 'team2_id');
}
Team.php
public function matches()
{
return $this->hasMany('\App\Match', 'team1_id')
->orWhere('team2_id', $this->id);
}
Вы можете указать, какой столбец должен быть предназначен для каждого отношения:
public function team1() {
return $this->belongsTo('\App\Match', 'team1_id');
}
public function team2() {
return $this->belongsTo('\App\Match', 'team2_id');
}
Позвольте мне знать, если это помогает.
Это было бы что-то вроде этого. Попробуйте.
Match.php
public function team1(){
return $this->belongsTo('App\Team', 'team1_id');
}
public function team2(){
return $this->belongsTo('App\Team', 'team2_id');
}
Team.php
public function matches1(){
return $this->hasMany('App\Match', 'team1_id', 'id');
}
public function matches2(){
return $this->hasMany('App\Match', 'team2_id', 'id');
}