Мой хост-объект имеет множество объектов-опций, связанных с ним. В форме редактирования пользователи могут (де) выбирать параметры и сохранять этот новый набор ассоциаций. Это реализовано с помощью saveAll () для опубликованных данных. В результате
- объект хоста (основной) обновлен,
- опция (связанные) объекты, которые включены как в предыдущую, так и в новую ассоциацию, обновляются, и
- Создаются объекты опций, которые не были включены в предыдущую связь, но включены в новую.
Но чего не происходит, это
- что объекты опций, которые были включены в предыдущую связь, но не в новую, удаляются.
Вопрос: Может ли saveAll () сделать то же самое, и как должна выглядеть структура данных для достижения этого эффекта?
Информация, связанная с данной:
Мой код для обработки формы редактирования на самом деле более сложный (поэтому я не цитировал его здесь), но это приводит к структуре данных, как описано в книге:
( [Host] => ( ... host object fields ... ),
[Option] => ( [0] => ( ... first option object fields ... ),
...
[n] => ( ... nth option object fields ... )
)
)
Теперь, если исходный хост имел связанную опцию, которая не включена в массив 0..n, saveAll () не обнаружит это и не удалит этот связанный объект.
Не уверен, что это актуально, но я использую CakePHP 1.3.