CakePHP - HABTM - добавление нескольких тегов в несколько точек - PullRequest
0 голосов
/ 17 февраля 2010

Я пытаюсь «пометить» несколько «точек» несколькими тегами. Я помечаю свои отдельные точки успешно. К сожалению, когда я пытаюсь использовать тег, такой как '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)
);

Я тоже пробовал это с уникальным значением true. К сожалению, это приведет к удалению любых других экземпляров «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', '4b7' -4744-ac53-3973c0a80001 ')

Мысль ????

Предложения ????

Ответы [ 2 ]

0 голосов
/ 17 февраля 2010

Когда вы используете метод save, вы делаете это внутри цикла? Помните, что лучше всего вызывать model :: create () всякий раз, когда вы сохраняете в цикле.

Я часто нахожу, что когда у меня возникают проблемы с поведением сохранения HABTM, это потому, что я не вызывал model :: create.

0 голосов
/ 17 февраля 2010

Откуда взялся id? Я предполагаю, что это первичный ключ таблицы, и из того, что я понимаю из вашего поста (пожалуйста, напишите более четко, помогите нам помочь вам), проблема не с точками или тегами, а с идентификатором в таблице points_tags.

...