在使用HABTM关系保存帖子之前自动插入标签

时间:2013-01-07 18:13:52

标签: php cakephp has-and-belongs-to-many

我有一个系统设置,其中一个帖子可以有很多标签,反之亦然。这是HABTM关系。一切正常,有一个输入框供我在添加帖子时选择相关标签。

但是我想实现像StackOverflow这样的系统,如果我输入一个尚不存在的标签,那么在保存帖子之前,Cake首先在我的tags表中创建该标签(以及联接表)。

我发现这样做的唯一方法是outlined here(向下滚动到“HABTM Text Add”),我手动检查标签是否存在,如果没有,我插入它。我想知道Cake是否采用了“内置”方式,或者有一种更好的方式符合Cake的“胖模型超薄控制器”惯例。

谢谢!

1 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法是使用Model callback method。这样您就可以在afterSave()中查找标签,然后添加标签,然后保存新数据。

由于您使用的是模型,因此您仍然可以使用$this->data

访问模型数据