Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Обновление записей используя saveAll

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
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);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алесь

цитировать



Зарегистрирован: 22 Ноя 2007 19:23:20
Сообщения: 29
Откуда: Минск

СообщениеДобавлено: 09 Мар 2010 15:41:31    Заголовок сообщения: Ответить с цитатой

Интуитивно чувствую - Behaviour!

А зачем тебе не удалять старые записи? Я думаю, что он удаляет не сами записи а СВЯЗИ между ними. Если протестишь напиши тут - прав я или нет.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
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')

Как сделать чтоб он не удалял старые а добавлял только новые.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
michas

цитировать



Зарегистрирован: 28 Янв 2008 11:28:31
Сообщения: 123

СообщениеДобавлено: 10 Мар 2010 12:59:14    Заголовок сообщения: Ответить с цитатой

пирожок сам так не умеет. переписывать логику надо. как советовали выше бехевиор поможет
_________________
Все самое интересное в реальном времени - xmpp:cakephp@conference.jabber.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru