sinoptik
цитировать
Зарегистрирован: 20 Авг 2009 16:29:34 Сообщения: 10
|
Добавлено: 08 Мар 2010 18:25:52 Заголовок сообщения: Обновление записей используя saveAll |
|
|
Cake при сохранении многих записей в начале удаляет старые, а затем уже записывает новые, вот тут это описано: http://book.cakephp.org/view/75/Saving-Your-Data
Цитата: |
By default when saving a HasAndBelongsToMany relationship, Cake will delete all rows on the join table before saving new ones. For example if you have a Club that has 10 Children associated. You then update the Club with 2 children. The Club will only have 2 Children, not 12.
|
Кто-то может мне растолкавать как сделать, чтоб Cake не удалял старые записи?
Исполльзую:
$for_save = $this->data['Model2'];
$this->Model1->Model2->saveAll($for_save); |
|
sinoptik
цитировать
Зарегистрирован: 20 Авг 2009 16:29:34 Сообщения: 10
|
Добавлено: 09 Мар 2010 16:24:26 Заголовок сообщения: |
|
|
Да, мне НЕ нужно удалять только старые связи между таблицами 1 и 2.
т.е. оставлять данные в связующей таблицы.
При сохранении пирожок сначала очищает таблиц, а потом вносит в нее новые записи вот так:
SELECT `ShopsMainService`.`main_services_id` FROM
`shops_main_services` AS `ShopsMainService` WHERE
`ShopsMainService`.`carwash_id` = 71
DELETE `ShopsMainService` FROM `shops_main_services` AS
`ShopsMainService` WHERE `ShopsMainService`.`carwash_id` = 71 AND
`ShopsMainService`.`main_services_id` IN (41, 32, 30, 29, 27, 26, 23,
17, 13, 11, 7, 6, 4, 2)
INSERT INTO `Shops_main_services` (`carwash_id`,`main_services_id`)
VALUES (71,'2'), (71,'4'), (71,'6'), (71,'7'), (71,'11'), (71,'13'),
(71,'17'), (71,'23'), (71,'26'), (71,'27'), (71,'29'), (71,'30'),
(71,'32'), (71,'41')
Как сделать чтоб он не удалял старые а добавлял только новые. |
|