Cakephp habtm保存数据

时间:2011-06-13 20:21:05

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

晚上好。

Mabye我是盲人,但我找不到解决方案:我有2个模型,Post和Tag,字段为post_text和tag_name,其中Post habtm Tag。

现在我有表单,我在其中输入post_text和几个tag_names。我想保存每个这些标签,保持它们的唯一性(所以如果标签已经在数据库中,不保存它,只需获取它的ID),然后保存帖子并最终将帖子与标签联系起来通过posts_tags表。

现在每个人都告诉我:把它留在蛋糕上,它可以为你做所有这些工作!好的,我很乐意,但我的$ this->数据数组应该怎么样?

我正在尝试Tag.tag_name,Post.Tag.tag_name,Post.Tag.0.tag_name,Post.PostsTag.0.tag_name,Tag.Tag.tag_name,Post.PostsTag.Tag.0.tag_name,.. 。

我正在尝试save(),saveAll(),......没有用。并且网络上的所有示例(包括Cake Book)都使用标签ID,而不是标签名称。

有没有办法(我的意思是$ this->数据数组形式),我可以发布到$ this-> Post-> save()或saveAll()它会为我做所有的魔术?

非常感谢。

Josh.T。

1 个答案:

答案 0 :(得分:0)

害怕你必须亲自编写saveUnique()方法,有人可能会纠正我,但我不认为蛋糕的自动化程度如此之高。

你基本上必须检查每个标签,如果它存在,将id(s)获取到一个数组中 - 否则制作并获取id(s)。然后几乎将该数组保存为原始帖子的标准habtm。

甚至可能值得在添加表单上使用某种形式的AutoComplete来获取已经存在的标签,然后只需要创建一个不存在的那个,然后保存它们+ habtm关系。