Orm 雄辩/Laravel三方多对多关系
我对Laravel是个新手,口才很好(一般来说,我对ORM的经验很少) 假设我有三个数据库表:Orm 雄辩/Laravel三方多对多关系,orm,laravel,eloquent,Orm,Laravel,Eloquent,我对Laravel是个新手,口才很好(一般来说,我对ORM的经验很少) 假设我有三个数据库表: 小部件 行动 使用者 我对一个包含以下列的连接表进行了建模: widget\u id action\u id user\u id 时间戳 连接点是保存交互日志——每当用户在小部件上执行操作时,都需要一个时间戳。我看到了如何使用Elount来模拟一个简单的多对多关系,并使其正常工作,但我不确定如何模拟一个更复杂的三方关系 就这一点而言,即使我有一个简单的多对多关系(比如说widget到action,因此
widget\u id
action\u id
user\u id
用户
在小部件
上执行操作
时,都需要一个时间戳。我看到了如何使用Elount来模拟一个简单的多对多关系,并使其正常工作,但我不确定如何模拟一个更复杂的三方关系
就这一点而言,即使我有一个简单的多对多关系(比如说widget
到action
,因此会有一个名为action\u widget
)的表),我如何在Elounting中为action\u widget
表添加一个显式模型,以便跟踪关于每个关系的额外数据(例如,时间戳、注释字段等)或者,我是不是完全错了
作为ORM的新手,我觉得自己只能做些什么!这种感觉消失了吗?:pLaravel可以自动创建中间模型。它们被称为“透视表”
我建议你阅读。当你有像CategotyArticle这样的双向关系时,pivot工作得很好。 但是如果你有三方关系,我认为最好有一个叫做WidgetUserAction的模型
编辑:对于这些情况,新的“hasManyThrough”很好。我已经考虑过这个问题,我认为Mild的答案更适合我的情况。是否还有其他理由使用透视表方法?不太可能,我还没有尝试过。中间表的自定义模型听起来是个好主意。谢谢,使用自定义模型显然是最好的解决方案。您能解释一下吗有一点关于你将如何处理这个问题?我面临一个类似的问题,但我对Eloquent了解不够,无法遵循它,文档也不够好。hasManyThrough不适用于这种情况。因为hasManyThrough不返回关系,只返回第三个属性的值。