1

我正在使用 CakePHP 2.x,我想知道是否有任何内置功能可用于使用 HABTM 连接表。我真的没有在文档中看到任何直接更改 HABTM 关系属性的内容。这就是我的意思:

我有一个连接表,其中包含两个模型之间关系的标志,可以这样证明:

(int) id | (int) user_id | (int) video_id | (bool) hasRated | (bool) hasWatched | (bool) hasDownloaded

第一列只是常规表 ID。接下来的两个(user_id 和 video_id)是用户表和视频表的典型 HABTM 外键。以下 3 个标志是两个模型之间关系的指标(此视频是否已观看?是否已评分?等)

我目前正在构建自己的查询,这是我的引导设置。我的最终目标是在两个模型的关系之间添加属性。这是解决这个问题的正确方法,还是有更Cakey的方法来做到这一点?

4

2 回答 2

0

为了维护一个HABTM你可以维护连接表。连接表的蛋糕约定HABTM是:

这个新连接表的名称需要包含所涉及的两个模型的名称,按字母顺序排列,并用下划线 (_) 分隔。表的内容应该是两个字段,每个外键(应该是整数)指向所涉及模型的两个主键。为避免任何问题 - 不要为这两个字段定义组合主键,如果您的应用程序需要它,您可以定义唯一索引。如果您打算向该表添加任何额外信息,最好添加一个额外的主键字段(按照约定“id”),以使对表的操作与任何其他模型一样容易。

所以它对你来说似乎很好。但是您必须遵循命名约定。

有关更多详细信息,请参阅文档

于 2012-08-04T06:44:50.483 回答
0

尤里卡。

在 2.x 中,cake 会自动为您创建模型并识别关系。

$this->Video->UserVideo将生成一个适合 HABTM 连接表的模型users_videos。然后,您可以像常规模型一样与之交互,它将更新数据库。

于 2012-08-05T13:14:55.110 回答