【发布时间】:2017-05-13 16:36:46
【问题描述】:
我正试图了解我在 Laravel 5.3 中的第一个多态关系。
我试图实现的关系是“社论”将有许多“元素”,每个元素将是它自己的模型并有一个顺序。
例如,我将有一个“ElementText”、“ElementImage”、“ElementButton”模型,然后一个“Editorial”将分配给它的各种元素。
这就是我认为我需要多态关系的原因。我不希望“社论”模型中的每种元素类型都有多个关系,我希望能够获取所有“元素”而不管其类型如何并按顺序排列。
我认为理想的解决方案是拥有一个带有类似列的“edittorial_element”数据透视表
editorial_id - integer
order - integer
element_id - integer
element_type - string
类似于 laravel 文档中的 morphToManyexample,但在该示例中,您需要指定要变形的模型。
所以我也想知道我是否应该在我的社论模型中使用 morphTo() 方法。
public function elements() {
return $this->morphTo();
}
但我认为这意味着我必须将 _type 和 _id 列添加到我的社论表中,这将是向后的(每个社论允许一个元素)
知道我是否可以设置我需要的关系还是我接近它错了?
【问题讨论】:
标签: php laravel laravel-5 eloquent