在保存具有 HABTM 关系的帖子之前自动插入标签

Posted

技术标签:

【中文标题】在保存具有 HABTM 关系的帖子之前自动插入标签【英文标题】:Automatically inserting tags before saving post with a HABTM relationship 【发布时间】:2013-01-07 18:13:52 【问题描述】:

我已经建立了一个系统,一个帖子可以有很多标签,反之亦然。这是一种 HABTM 关系。一切正常,并且有一个输入框供我在添加帖子时选择相关标签。

但是我想实现一个像 *** 这样的系统,如果我输入一个不存在的标签,Cake 首先在我的tags 表中创建该标签,然后保存帖子(以及连接中的关系表)。

我发现这样做的唯一方法是outlined here(向下滚动到“HABTM 文本添加”),我手动检查标签是否存在,如果不存在,我插入它。我想知道 Cake 是否有“内置”方式来执行此操作,或者是否有更好的方式符合 Cake 的“胖模型瘦控制器”约定。

谢谢!

【问题讨论】:

【参考方案1】:

最好的方法是使用Model callback method。这将允许您说,在您的 afterSave() 中查找标签,然后添加它,然后保存新数据。

因为您正在使用您的模型,所以您仍然可以使用 $this->data 访问模型数据

【讨论】:

以上是关于在保存具有 HABTM 关系的帖子之前自动插入标签的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 Cakephp 中的 saveAll 一次将所有相关记录插入到 HABTM 中?

CakePHP 2.5 habtm 不保存

CakePHP 和 HABTM 插入/保存不起作用

CakePHP HABTM 关系保存新的关联

尝试在保存时保存 CakePHP HABTM 关系中的重复关联

cakephp 在不使用视图的情况下保存 HABTM 关系的数据