【问题标题】:How to make a Child table to access another table laravel如何使子表访问另一个表 laravel
【发布时间】:2015-09-15 00:54:12
【问题描述】:

我正在使用 Laravel 5.1。

我有三张桌子。

  • 电影
  • 视频
  • 视频类别

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

现在我想通过传递电影 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 中传递多个查询和合并?

请任何人帮助我。

【问题讨论】:

标签: php mysql database database-design laravel-5


【解决方案1】:

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

Laravel 5 Eager Loading does this job correct

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多