我正试图用多个标签'标记'多个'点'。我正在成功标记我的单点。不幸的是,当我尝试使用标记,例如'test2'在另一个点作为标记时,如果我将'unique'设置为false或者'unique'设置为true,则会给我一个重复的输入错误,它将为'test2'的所有其他点添加标签,并创建一个新的。
以下是我的帖子数据:
Array
(
[Tag] => Array
(
[id] => 4b7af6d7-787c-4f10-aa49-2502c0a80001
[name] => Test2
)
[Point] => Array
(
[id] => 4b47c66f-a130-4d12-8ccd-60824051e4b0
)
)
在我的标签模型中,我有这个:
public $hasAndBelongsToMany = array(
'Point' => array(
'className' => 'Point',
'joinTable' => 'points_tags',
'foreignKey' => 'tag_id',
'associationForeignKey' => 'point_id',
'unique' => false)
);
我试过这个''unique'也是如此。不幸的是,这将删除连接表中的“Test2”的任何其他实例('points_tags')。
我使用save()和saveAll()尝试了这个。两者都给了我这个错误:
警告(512):SQL错误:1062:重复条目'4b7af6d7-787c-4f10-aa49-2502c0a80001-4b47c66f-a130-4d12-8ccd-608'用于密钥'MAN_ADD'[CORE / cake / libs / model / datasources / dbo_source.php,第527行]
查询:INSERT INTO points_tags
(tag_id
,point_id
,id
)VALUES('4b7af6d7-787c-4f10-aa49-2502c0a80001','4b47c66f-a130-4d12-8ccd -60824051e4b0','4b7b39f3-46f8-4744-ac53-3973c0a80001')
思考????
建议????
答案 0 :(得分:0)
id
来自哪里?我猜它是表的主键,从我对你的帖子的理解(请写得更清楚,帮助我们帮助你)问题不是点或标签,而是在points_tags表中的id。
答案 1 :(得分:0)
当你使用save方法时,你是在循环中做的吗?请记住,最佳做法是在保存循环时调用model :: create()。
我经常发现当我遇到HABTM保存行为问题时,这是因为我没有调用model :: create。