【问题标题】:Laravel 5.5: Relationship with Multiple different sub-modelsLaravel 5.5:与多个不同子模型的关系
【发布时间】:2018-04-18 19:09:31
【问题描述】:

我正在为我们的图书馆开发一个应用程序。

我们有不同的文件类型(公报、书籍、报告、剪报等。

我开始为 Gazettes 创建一个模型,其中包含名称、年份、编号、法规/法律类型、参考等字段。在处理文件上传时,我与文件建立了关系。

因此我们的想法是为所有文档设置一个Resource 类,并为每种文档类型设置一个模型,因为字段不同。剪报将有body, newspaper, date and page 作为字段。书籍会有更多,比如title, subtitle, author, publisher, genre, ISBN, hard/soft

我应该能够将文件链接到每个文件,无论是作为文档的数字版本还是作为“相关”。

我正在考虑文件和资源模型之间的多对多关系,但是我如何仍然合并每个子模型的不同字段。我不必单独为每种文档类型(gazette_file 和 book_file 和 report_file)建立关系,尤其是因为它们应该是可互换的。

我使用什么模型/关系结构?

有一个几乎类似的问题Laravel 5 - defining relationships,但重点不同。提供的答案没有考虑不同的字段。

【问题讨论】:

  • 这听起来像是基本的 OOP。创建一个主 Document 类,然后在每个特定的文档类型对象中继承该父类。然后制作一个主资源对象。给父 Document 对象一个与 Resource 对象有很多关系。
  • 从程序背景出发,我将快速研究 OOP,然后再继续此处。 :)

标签: php laravel model relationships


【解决方案1】:

我认为您正在寻找多态关系。

https://laravel.com/docs/5.5/eloquent-relationships#polymorphic-relations

因此,您的文件模型将有一个“id”字段和一个与文件关联的模型相关的“类型”。

例如

Book with the ID of 99

Files Model

id = 1
related_id = 99
related_type = book
file_name = "yourname.jpg"
etc

【讨论】:

    猜你喜欢
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多