3

http://laravel.com/docs/eloquent#polymorphic-relations

多态关系允许模型在单个关联上属于多个其他模型。例如,您可能有一个属于员工模型或订单模型的照片模型。

我真的不明白这个用例。这是否意味着工作人员可以拥有一张照片,或者可以将照片放在订单中?为什么不只是放在photo_id桌子staff和桌子photo_idorder

有人可以提供一个可以使用多态关系的替代的、易于理解的示例吗?

4

2 回答 2

2

您可以添加photo_id到 Staff and Order,但使用 morphMany 关系类型,您不必“弄乱”所有需要照片的模型。创建需要照片的第三个模型时,只需添加方法即可完成 - 无需创建额外的列。

另请注意,您可以指定名称。该手册使用“可成像”,但可以随意为不同类型的照片(或其他型号)使用多个名称

于 2013-09-05T10:39:49.433 回答
1

据我了解,您对 Laravel 文档中提供的示例的看法是有缺陷的。

如果你只是photo_id在表格stafforder表格中添加一个,那么每个员工只能有一张照片,而订单只能有一张照片。一张照片只能属于一个员工或一个订单,但一个员工或一个订单可以有多张照片。

于 2013-10-22T21:21:53.037 回答