여러 개의 '지점'에 여러 개의 태그를 '태그'하려고합니다. 내 싱글 포인트를 성공적으로 태그 지정하고 있습니다. 불행히도, 시도하고 같은 태그로 'test2'같은 다른 지점에 태그를 사용하여 중 하나를 false로 설정할 내 '고유'또는 고유 한 true로 설정된 경우 나에게 중복 항목 오류를주는 것입니다, 그것은 'test2'에 대한 다른 모든 점들에 대한 필자의 del 태그와 하나의 새로운 점을 생성 할 것입니다. 여기 CakePHP - HABTM - 여러 지점에 여러 개의 태그 추가
내가 내 게시물 데이터를 가지고 무엇을 :public $hasAndBelongsToMany = array(
'Point' => array(
'className' => 'Point',
'joinTable' => 'points_tags',
'foreignKey' => 'tag_id',
'associationForeignKey' => 'point_id',
'unique' => false)
);
나도 '독특한'가 true로 설정하여이 시도했다 : 내 태그 모델에서
Array
(
[Tag] => Array
(
[id] => 4b7af6d7-787c-4f10-aa49-2502c0a80001
[name] => Test2
)
[Point] => Array
(
[id] => 4b47c66f-a130-4d12-8ccd-60824051e4b0
)
)
내가이 있습니다. 불행히도이 작업은 조인 테이블 ('points_tags')의 'Test2'인스턴스를 삭제합니다.
나는 save()와 saveAll()을 사용하여 이것을 시도했다. 둘 다이 오류를 보내고 있습니다 :
SQL 오류 : 1062 : 'MAN_ADD'키에 대해 '4b7af6d7-787c-4f10-aa49-2502c0a80001-4b47c66f-a130-4d12-8ccd-608'항목이 중복 됨 [ CORE/케이크/libs와/모델/데이터 소스/dbo_source.php, 라인 (527)] 질의 : 4b47c66f-a130-4d12 'points_tags
(tag_id
, point_id
, id
) VALUES ('4b7af6d7-787c-4f10-aa49-2502c0a80001 'INSERT INTO -8ccd-60824051e4b0 ','4b7b39f3-46f8-4744-ac53-3973c0a80001 ')
생각
제안?
당신이 말하는이 ID는 tag_id 또는 point_id입니다. tag_id는 태그가 이미 존재하고 point_id가 태그하려는 항목의 ID 인 경우 태그에서옵니다. 내 마음에 문제는 항목이 이미 다른 항목에서 이미있는 경우 points_tags 항목이 쓰여지는 것입니다. 예를 들어 : 점 '은'태그가 - 테스트 나는 또한 태그 '테스트'와 태그 포인트 (b) '을 원하는 경우,이 점에 대한 points_tags에서 현재 항목을 삭제합니다을'A '태그' test '를 입력하고'test '태그가 붙은'b '에 대한 항목을 삽입하십시오. 따라서 'test'로 만든 이전 연관을 제거하십시오. 그 점이 명확하게 설명되어 있습니까? – zmonteca