【问题标题】:Laravel Pivot table eloquent relationshipsLaravel Pivot 表雄辩的关系
【发布时间】:2016-09-06 12:20:30
【问题描述】:

情况:在我的 laravel 项目中。以下是4 个表格movie_venue电影场地数据透视表。我需要使用电影模型访问放映时间。

$movie = $this->model->find($movie_id);

$venues = $movie->venues;

使用雄辩的关系,我可以访问场地列表。但无法创建从电影模型中获取放映时间的关系。


| movies     | venues | movie_venue | showtimes     |
----------------------------------------------------|
| id         | id     | id          |id             |
| name       | name   | movie_id    |movie_venue_id |
| ....       |  ....  | venue_id    |time           |

【问题讨论】:

    标签: php mysql eloquent laravel-5.2 relationships


    【解决方案1】:

    我假设您对VenuesShowtimes 使用一对多关系?

    你可以试试这样的:

    foreach ($movies->venues as $venue) {
        foreach ($venue->showtimes as $showtime) {
            //do something with your showtime.
        }
    }
    

    顺便说一句:从venue 开始而不是访问Showtimes 不是更有意义吗?

    更新

    根据您的评论,您可以尝试以下操作:

    $movie = Movie::find($id);
    $venues = $movie->venues;
    
    foreach ($venues->showtimes as $showtime) {
        // Here you'll get the showtimes per venue.
    }
    

    【讨论】:

    • 我真的将它用于移动应用程序作为网络服务。当用户通过 id 请求电影时。我需要发送最近的场馆和每个场馆的放映时间的电影详细信息。电影和场所表具有名为movie_venue 的数据透视表。它的主键是showtimes 表的外键。那么我怎样才能在电影到场地然后到放映时间之间建立关系。希望这是有道理的
    • 感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 2018-11-28
    • 2015-01-11
    • 2021-06-03
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多