关系多模型
Relation multiple Models
我很长时间没有使用 laravel,我正在努力获取一些数据。
我试图从比赛中获得所有博彩公司,但没有获得:
db:
leagues:
-id
-name
league_bookmakers:
- id
- league_id
- bookmaker_id
bookmakers:
- id
- name
控制器:
$example = \App\League::find(440);
dd($example->bookmakers());
模范联赛:
public function bookmakers()
{
return $this->hasMany(LeagueBookmaker::class);
}
你得到了什么?你得到一个空的集合吗?
正如所评论的那样,尝试这样做
dd($example->bookmakers);
此外,请先尝试执行 dd($example)
,看看它是否包含 bookmakers
集合 属性。
当您在模型 ($example->bookmakers()
) 上调用关系方法时,它 returns 实际关系,允许您添加额外的约束。
您需要调用的是 'dynamic property',它只是 returns 来自关系的数据:
$example->bookmakers // without the ()
当您与league_bookmakerstable建立关联时,您将不会直接获得庄家数据。在这种情况下,您可以像下面的代码一样定义一个 belongsToMany 关系 -
public function bookmakers()
{
return $this->belongsToMany(Bookmaker::class, 'league_bookmakers','league_id', 'bookmaker_id');
}
它将 return 书商 table 直接提供信息。
我很长时间没有使用 laravel,我正在努力获取一些数据。
我试图从比赛中获得所有博彩公司,但没有获得:
db:
leagues:
-id
-name
league_bookmakers:
- id
- league_id
- bookmaker_id
bookmakers:
- id
- name
控制器:
$example = \App\League::find(440);
dd($example->bookmakers());
模范联赛:
public function bookmakers()
{
return $this->hasMany(LeagueBookmaker::class);
}
你得到了什么?你得到一个空的集合吗? 正如所评论的那样,尝试这样做
dd($example->bookmakers);
此外,请先尝试执行 dd($example)
,看看它是否包含 bookmakers
集合 属性。
当您在模型 ($example->bookmakers()
) 上调用关系方法时,它 returns 实际关系,允许您添加额外的约束。
您需要调用的是 'dynamic property',它只是 returns 来自关系的数据:
$example->bookmakers // without the ()
当您与league_bookmakerstable建立关联时,您将不会直接获得庄家数据。在这种情况下,您可以像下面的代码一样定义一个 belongsToMany 关系 -
public function bookmakers()
{
return $this->belongsToMany(Bookmaker::class, 'league_bookmakers','league_id', 'bookmaker_id');
}
它将 return 书商 table 直接提供信息。