【发布时间】:2016-06-16 15:22:47
【问题描述】:
我需要您的帮助,简而言之(视频、帖子、用户)我想使用这三个模型来执行以下操作:
让用户(收藏或评论)任一(视频或帖子) 什么适合这种情况(普通多态或多对多多态)
请有任何建议
【问题讨论】:
标签: laravel eloquent polymorphism
我需要您的帮助,简而言之(视频、帖子、用户)我想使用这三个模型来执行以下操作:
让用户(收藏或评论)任一(视频或帖子) 什么适合这种情况(普通多态或多对多多态)
请有任何建议
【问题讨论】:
标签: laravel eloquent polymorphism
您可以对两者都使用普通的多态。
这里的想法是用户可以收藏Post 或Video - 但是,这些收藏的操作 是各自的Post 或Video 所独有的。您不能在一个操作中收藏两个单独的对象 - 会有两个唯一的收藏夹(一个用于第一个对象,一个用于第二个对象)。
这同样适用于 cmets。您可以评论多个对象,但每个评论对于该对象来说都是唯一的。
多对多多态关系的用例最容易用标记对象的概念来解释。
您可以Tag 一个带有“PHP”之类的对象 - 您也可以Tag 另一个带有“PHP”的对象。因此,Tag 具有多对多关系,可以标记到多个单独的模型。这就是使其具有多态性的原因。
所以,因为 Favorite 和 Comment 只与一个对象的一个实例相关联——那么这是一种正常的多态关系。
【讨论】: