我有一个系统设置,其中一个帖子可以有很多标签,反之亦然。这是HABTM关系。一切正常,有一个输入框供我在添加帖子时选择相关标签。
但是我想实现像StackOverflow这样的系统,如果我输入一个尚不存在的标签,那么在保存帖子之前,Cake首先在我的tags
表中创建该标签(以及联接表)。
我发现这样做的唯一方法是outlined here(向下滚动到“HABTM Text Add”),我手动检查标签是否存在,如果没有,我插入它。我想知道Cake是否采用了“内置”方式,或者有一种更好的方式符合Cake的“胖模型超薄控制器”惯例。
谢谢!
答案 0 :(得分:0)
执行此操作的最佳方法是使用Model callback method。这样您就可以在afterSave()
中查找标签,然后添加标签,然后保存新数据。
由于您使用的是模型,因此您仍然可以使用$this->data