Laravel 5可扩展实体,如何使用?

时间:2019-07-16 08:54:10

标签: laravel-5 eloquent

因此,假设我有基本的Document,具有titleauthorlink_to_file属性和belongsToMany(Document)hasMany(Document)递归父子关系。

现在,我想将Document扩展为3种(或更多)类型:LetterReportContract,它们可以具有自己的独特性除继承属性外,属性(例如Letter具有senderrecepientContract可以具有诸如valid_until之类的某些字段)。

我希望他们所有人都拥有title属性(从Document继承)并能够与彼此建立孩子-父母关系(Contract可以是{{1 }},可以是另一个Letter的父级,也可以是Contract ...的父级等),而无需对其进行硬编码。

如何在laravel中实现呢? 我的意思是扩展的东西。我知道我可以将ReportLetterReport实现为单独的实体而无需祖先类/实体的事实。

UPD::如果我是从头开始的(不涉及任何框架),那么我可能会以下面的表格(糟糕的设计,仅用于演示目的)结束:

Contract = documents:int,id:枚举(Letter,Contract,Report),extension_type:int,extension_id:text,{{ 1}}:linkauthortext

title = text:int,document_to_document:int

document_id = child_document_id:int,lettersextension_id

sender = recepient:int,contractsextension_id

valid_until = additional_field_5:int,reports

0 个答案:

没有答案