CodeIgniter / Datamapper - обновление отношений один ко многим - PullRequest
0 голосов
/ 28 ноября 2011

Возникла проблема с обновлением отношений один-ко-многим с CodeIgniter / Datamapper.У меня в голове была мысль, что когда отношения один-ко-многим обновляются.Существующие записи в таблице отношений будут удалены, а новые отношения добавлены.Похоже, что это не так.

Используя следующее, каждый раз добавляет новые записи в таблицу отношений:

$item->save($banners);

Созданные отношения верны, но я ожидал толькообъекты, содержащиеся в $banners, которые должны быть включены в таблицу отношений, а не какие-либо исторические элементы.

Является ли эта правильная функциональность и, если да, то каков наилучший способ заставить этот процесс обновления работать?

Спасибо

1 Ответ

1 голос
/ 24 декабря 2011

Один ко многим не означает «может быть связан только один». См. Википедия

Это просто означает, что «одна» сторона отношения содержит внешний ключ.

Вам нужно вручную сбросить существующие отношения, если вы хотите это поведение. Это выполняется быстрее всего при использовании запроса на обновление, в котором для «foreign_key» задано значение NULL, где «foreign_key» - это значение «id» объекта, который должен быть связан.

...