【问题标题】:Laravel Model has many models of different types (a collection of models)Laravel Model 有很多不同类型的模型(模型的集合)
【发布时间】:2021-01-28 20:16:49
【问题描述】:

我有BookMagazineSong 模型。

我想创建一个Collection 模型,它将包含这三种类型的模型,所以我可以这样查询它(伪代码):

Collection->get()

并得到类似这样的结果:

[
  {Book_1}
  {Magazine_1}
  {Book_2}
  {Song_1}
  {Book_3}
  ...
]

是否可以在 Laravel 中进行,我将如何解决这个问题?

我查看了多态关系,但据我了解,一次只能获得一种类型的关系(books()、magazines()、songs()),而不是它们的混合。

【问题讨论】:

    标签: php laravel eloquent relational-database


    【解决方案1】:

    collection 在 Laravel 中已经是一个“事物”(如关键字),它是数组的包装类。也许你可以使用“媒体”之类的东西。如果所有表都有相同的列,您可以使用 union 或创建 3 个查询和 concat 结果。

    $books = Book::all();
    $songs = Song::all();
    $magazines = Magazine::all();
    
    $media = collect([$books, $songs, $magazines]);
    

    【讨论】:

      猜你喜欢
      • 2015-02-26
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多