Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.5:与多个不同子模型的关系_Php_Laravel_Model_Relationships - Fatal编程技术网

Php Laravel 5.5:与多个不同子模型的关系

Php Laravel 5.5:与多个不同子模型的关系,php,laravel,model,relationships,Php,Laravel,Model,Relationships,我正在为我们的图书馆写一份申请书 我们有不同的文件类型(公报、书籍、报告、剪报等) 我开始为公报创建一个模型,包括名称、年份、编号、法规/法律类型、参考等字段。在上传文件时,我与文件建立了关系 因此,我们的想法是为所有文档提供一个资源类,并为每种文档类型提供一个模型,因为字段不同。剪报将正文、报纸、日期和页面作为字段。书籍将有更多,如标题、副标题、作者、出版商、流派、ISBN、硬/软 我应该能够链接到每个文件,无论是作为数字版本的文件或作为“相关” 我在考虑文件和资源的模型之间的多对多关系,但是

我正在为我们的图书馆写一份申请书

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

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

因此,我们的想法是为所有文档提供一个
资源
类,并为每种文档类型提供一个模型,因为字段不同。剪报将
正文、报纸、日期和页面作为字段。书籍将有更多,如
标题、副标题、作者、出版商、流派、ISBN、硬/软

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

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

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


有一个几乎相似的问题,但重点不同。提供的答案没有考虑不同的字段。

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

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

例如


我认为你正在寻找一种多态的关系

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

例如


这听起来像是基本的OOP。创建一个主文档类,然后在每个特定文档类型对象中继承该父类。然后创建一个主资源对象。为父文档对象指定一个与资源对象有很多关系的对象。来自过程背景,我将在继续之前快速研究OOP。:)这听起来像是基本的OOP。创建一个主文档类,然后在每个特定文档类型对象中继承该父类。然后创建一个主资源对象。给父文档对象一个与资源对象有很多关系的对象。来自过程背景,在继续这里之前,我将快速研究OOP。:)
Book with the ID of 99

Files Model

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