Php LAVEL表示一个表的两列

Php LAVEL表示一个表的两列,php,mysql,laravel,Php,Mysql,Laravel,好的,我正在构建一个足球经理web应用程序。我有一张桌子: ------------------ | id | name | ------------------ | 1 | Barcelona | ------------------ | 2 | Madrid | ------------------ 我还有一个赛季比赛表,这是一个精简版: ------------------------------------------ | i

好的,我正在构建一个足球经理web应用程序。我有一张桌子:

------------------
| id  | name      |                 
------------------
| 1   | Barcelona |
------------------
| 2   | Madrid    |
------------------
我还有一个赛季比赛表,这是一个精简版:

------------------------------------------
| id  | season_id | away_team | home_team |                       
------------------------------------------
| 1   |     1     |    1      |     2     |
------------------------------------------
| 2   |     1     |    2      |     1     |
-------------------------------------------
这用于在html中检索球队即将举行的比赛:

<table>
        <thead>
            <tr>
                <th>Season Name</th>
                <th>Home Team</th>
                <th>Away Team</th>
                <th>Score</th>
                <th>Date</th>
            </tr>
        </thead>
        <tbody>
            @foreach($all_games as $game)
                <tr>
                    <td>
                        {{ $game->seasons->name }}
                    </td>
                    <td>
                        {{ $game->home_team }}
                    </td>
                    <td>
                        {{ $game->away_team }}
                    </td>
                    <td>
                        {{ $game->home_score . " x " . $game->away_score}}
                    </td>
                    <td>
                        {{ $game->game_date }}
                    </td>
                </tr>
            @endforeach
        </tbody>
    </table>

季名
主队
客队
分数
日期
@foreach($game的所有游戏)
{{$game->季节->名称}
{{$game->主队}
{{$game->客场球队}
{{$game->home_score.“x”{$game->way_score}
{{$game->game_date}
@endforeach

好的,所以我要做的是使客场和主场都与球队表相关。因此,在me视图中,我不需要运行getNameFromId函数,因为显然有数百个游戏,这意味着数百个sql查询。什么是有效的方法

连接非常好,因为您不必进行琐碎的查询。 假设您的模型设置如下: 团队 游戏 我会用原始语句这样做:

Game::join('teams AS t1', 't1.id', '=', 'matches.away_team')
->join('teams AS t2', 't2.id', '=', 'matches.home_team')
->select('matches.id', 't1.name', 't2.name')
->get();
减少服务器端查询的一种方法是将匹配中显示的所有ID返回到客户端,并将teams表中的这些行返回到客户端并在那里解码。 请给我反馈。
这是我第一次写回复。

你用这些名字做什么?@eloung展示球队的固定装置设置两个
hasOne()
赛季比赛模型和球队模型之间的关系,一个用于主队,一个用于客队;两个
在团队模型和季节性游戏模型之间有许多关系,一个用于主场游戏,另一个用于客场游戏games@MarkBaker谢谢你,我想知道这是否可能,我想我应该去做,这是最好的研究