Да, это поведение по умолчанию HABTM в cakephp, хотя это не для "каждой строки", а для "каждого сохранения HABTM".
это работает, ЕСЛИ вы всегда предоставляете все значения HABTM.и с запеченными представлениями в соответствии со спецификациями для такого HABTM все это работает "из коробки".
если вы измените поведение по умолчанию (старые не удаляются), вам нужно будет убедиться, что нет дубликатов,Я думаю, что есть поведение, которое пытается это сделать.но я бы порекомендовал вам построить ваши формы так, чтобы поведение по умолчанию для торта могло выполнять свою работу.
Пример:
IS: 1,3,6 (в БД для этого ключа)
NEW: 2,3,6 (из формы)
(торт удаляет 1,3,6 и добавляет 2,3,6)
=> в целомрезультат (забывая о разных первичных ключах): «1» удалено, «2» добавлено
, поэтому это может быть не самый щадящий способ, но, несомненно, самый простой и быстрый.