php - 如何使子表访问另一个表 laravel

标签 php mysql database database-design laravel-5

我正在使用 Laravel 5.1。

我有三张 table 。

  • 电影
  • 视频
  • 视频类别

用户可以创建一部电影并添加多个视频,但每个视频都应属于任何一个类别(例如制作视频、预告片视频、电影事件)。

现在我想通过传递电影 ID 来获取每个视频的所有电影、视频和视频类别。

表结构

电影表

filmID | filmName 
-----------------
   1   |  Film 1
   2   |  Film 2

视频表

videoID | filmId | catID | videoURL
-----------------------------------
   1    |    1   |  cat1 |   URL 1
   2    |    1   |  cat2 |   URL 2

视频分类表

  catID  | category
--------------------
   cat1  |  Trailer
   cat2  |  Making
   cat3  |  Events

我可以通过 FilmID 获取所有视频

{
  filmId: "filmName",
  filmName: "Film Name",
  coverPhoto: "image URL",
  created_at: "2015-06-28 06:35:26",
  updated_at: "2015-06-28 06:35:45",
  videos: [
      {
        id: 7,
        filmId: "filmID",
        videoCategory: "trailer",
        videoUrl: "h41Jb29P4",
        created_at: "2015-06-28 11:40:22",
        updated_at: "2015-06-28 11:40:22"
      }
  ]
}

但是我如何获得视频类别以及此输出。像这样

{
      filmId: "filmName",
      filmName: "Film Name",
      coverPhoto: "image URL",
      created_at: "2015-06-28 06:35:26",
      updated_at: "2015-06-28 06:35:45",
      videos: [
          {
            id: 7,
            filmId: "filmID",
            videoCategory: "trailer",
            videoUrl: "h41Jb29P4",
            created_at: "2015-06-28 11:40:22",
            updated_at: "2015-06-28 11:40:22"
            videoCategory: [
                  {
                     videoCategoryId: "1",
                     videoCategoryName: "Trailer"
                  }
            ]
          }
      ]
    }

有没有办法在 PHP 中不传递多个查询并合并?

请任何人帮助我。

最佳答案

是的,我自己找到了答案。我在 Laravel 中使用了 Nested Eager loading Concept

Laravel 5 Eager Loading does this job correct

关于php - 如何使子表访问另一个表 laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31100793/

相关文章:

php - ci_phpunit_test : Help needed about test double with queries

javascript - 如何将 PHP 循环转换为 JSON 循环?

java - UNIQUE 约束失败 : sqlite database : android

database - 在不复制输出的情况下从多个表创建 View

当文件名中出现空格时 PHP Echo 停止

php - 对加拿大 SMS 网关提供商的建议

php - 将日期范围拆分为几周

javascript - 使用 NodeJS/AngularJS 创建到 MySQL 的 RESTful API 桥

PHP 和 MySQL - 从列中获取特定结果的数量

c# - 在两个不同mysql数据库的两个表之间复制大量行