【发布时间】:2018-12-29 19:47:10
【问题描述】:
我有一个用户模型和一个事件模型。一个User has_many Events(可以创建多个事件),Events属于User。但是,由于我的事件也有一个注册,我认为最好的方法是添加一个包含所有注册的数据透视表 users_events_table,现在两个模型都传递给 belongs_to 关系。
有什么办法可以维持这两种关系?
【问题讨论】:
我有一个用户模型和一个事件模型。一个User has_many Events(可以创建多个事件),Events属于User。但是,由于我的事件也有一个注册,我认为最好的方法是添加一个包含所有注册的数据透视表 users_events_table,现在两个模型都传递给 belongs_to 关系。
有什么办法可以维持这两种关系?
【问题讨论】:
是的 - 你可能在追求has many through 关系。除了数据透视表是一流模型之外,它的工作原理类似于属于多个关系,这意味着您可以为其附加额外的功能。一个用户可以通过注册来进行很多活动,反之亦然。
如果您实际上不需要关于数据透视表的那么多额外信息 - 也许您只需要 created_at/updated_at 时间戳,那么您可以使用 belongs to many 并在最后弹出 withTimestamps() - Laravel会为你处理的。它确实允许您在该数据透视表上添加更多列,但根据您的用例,它们可能会变得难以管理,这可能是一个更好的解决方案。
【讨论】: