【发布时间】:2018-05-27 13:35:08
【问题描述】:
我是 Laravel 和 Eloquent 的新手,我正在尝试制定足球比赛计划。
现在我有 4 个表(带有一些示例条目):
团队(所有团队)
+---------+-----------+
| team_id | team_name |
+---------+-----------+
| 1 | Arsenal |
| 2 | Chelsea |
+---------+-----------+
比赛(所有比赛)
+----------------+------------------+
| competition_id | competition_name |
+----------------+------------------+
| 1 | Premier League |
+----------------+------------------+
schedule(比赛日程)
+----+----------------+----------+--------------+--------------+-----------+-----------+
| id | competition_id | matchday | home_team_id | away_team_id | home_goal | away_goal |
+----+----------------+----------+--------------+--------------+-----------+-----------+
| 1 | 1 | 1 | 1 | 2 | 3 | 2 |
| 2 | 1 | 2 | 2 | 1 | 0 | 3 |
+----+----------------+----------+--------------+--------------+-----------+-----------+
schedule_teams(将日程 teamid 与比赛 ID 和 schedule_team_id 上的球队 ID 匹配)
+----+------------------+----------------+----------+
| id | schedule_team_id | competition_id | teams_id |
+----+------------------+----------------+----------+
| 1 | 1 | 1 | 1 |
| 2 | 2 | 1 | 2 |
+----+------------------+----------------+----------+
这是我目前的课程:
Schedule.php
public function competition()
{
return $this->belongsTo(Competition::class, 'competition_id', 'competition_id');
}
Competition.php
public function schedule()
{
return $this->hasMany(Schedule::class, 'competition_id', 'competition_id');
}
与
$id = \request('competition_id');
$schedule = Schedule::where('competition_id', $id)->with('competition')->get();
我从日程表中获得了带有主客场 ID 的日程表。
现在的问题是,如何通过 schedule_teams 表从 team 表中获取特定的主客场 ID,例如 home_team_id = 1:
home_team_id (=1) -> schedule_team_id (=1) 和 Competition_id (=1) -> 球队(阿森纳)
我希望集合中的时间表和相关团队的数据输出到刀片中。
谁能帮助或给我改进足球数据库的提示?
【问题讨论】:
-
就像一个注释。将主键作为
id在您的表上被广泛认为是最佳实践。例如,在您的竞争表中,您不需要competition_id。否则会让人感到困惑。
标签: php mysql laravel eloquent