我有2个表1,称为俱乐部和1个团队 这就是他们的样子
matches:
id || home_id || away_id ||
--------------------------------------
1 2 1
clubs:
id || name || img_url ||
---------------------------------------
1 Team1 .....
2 Team2 .......
现在我想建立一个关系,这样我就可以通过home_id和away_id得到俱乐部名称
答案 0 :(得分:0)
匹配模型:
public function club() { return $this->belongsTo('Match', 'home_id'); }
分会模特:
public function match() { return $this->hasMany('Club', 'home_id'); }
查询:
$match = Match::with('club')->find(1);
转储名称:
dd($match->club->name);
答案 1 :(得分:0)
这似乎是一个不完整的解决方案。你永远不会找到那些作为客队效力的俱乐部。事实上,俱乐部不仅应该基于home_id而且还要基于away_id进行比赛。
public function clubhome() { return $this->belongsTo('Match', 'home_id'); }
public function clubaway() { return $this->belongsTo('Match', 'away_id'); }
在您的控制器/路由器中,您可以将它们连接到一个阵列中以返回完整列表。
我知道这很麻烦,但我正在处理完全相同的问题,这是我能够提出的唯一解决方案:
//works: http://localhost:8080/match/4/clubs
$one = Match::find($id)->clubhome();
$two = Match::find($id)->clubaway();
return Response::json(array($one,$two));