我正在创建一个项目管理系统,将项目分配给用户
ProjectsUser
创建模型和定义 2$belongsTo
关系以及HABTM
在模型Project
和模型中定义关系有什么区别User
?但是,最正确的方法是什么?以及如何将数据保存在projects_users
表中?
我正在创建一个项目管理系统,将项目分配给用户
ProjectsUser
创建模型和定义 2$belongsTo
关系以及HABTM
在模型Project
和模型中定义关系有什么区别User
?但是,最正确的方法是什么?以及如何将数据保存在projects_users
表中?
根据我的经验,如果您只想从连接表(具有 2 个 ID 的表)中保存或删除行,那么使用通过 hasMany 和 belongsTo 关联关联的三个模型要简单得多。
您还可以直接从连接表中检索数据并更轻松地执行您想要的查询
这就是 CakePHP 文档中提到的 HABTM 和保存数据的说法:
但是,在大多数情况下,为连接表创建模型并设置 hasMany、belongsTo 关联(如上例所示)比使用 HABTM 关联更容易。
在这里您可以找到更多全文: http ://book.cakephp.org/2.0/en/models/saving-your-data.html#what-to-do-when-habtm-becomes-complicated
我已将此方法用于“读取”表(带有 post_id 和 user_id)以及订阅和类似类型的关系。
不确定 cakephp 的具体细节,但通常显式定义关系模型可以让您对其进行更多控制,例如,如果您想进行一些验证或在创建此关系时添加回调。