Я сделал одну большую форму со многими ассоциациями hasMany / HABTM. Все отлично работает над созданием (!). При обновлении все тоже работает хорошо, но в таблицах, где ассоциация имеет hasMany, данные не обновляются и не заменяются, а просто вставляются. Это приносит много строк с мусорными данными. Как я могу сделать, чтобы saveAll () выполнял обновление / замену в полях hasMany:
Модель:
class MainModel extends AppModel {
var $hasAndBelongsToMany = array(
'HABTMModel1',
...
'HABTMModeln',
);
var $hasMany = array(
'Model1' => array(
'dependent' => true
),
...
'Modeln' => array(
'dependent' => true
),
);
}
Одна из проблемных моделей имеет много моделей:
class Model1 extends AppModel {
var $belongsTo = array(
'MainModel'
);
}
А на его столе есть:
id <- Primary key, auto increment, int (11)
main_model_id <- Foreign_key int (11)
name <- text field, string
Данные $ this-> выглядят так:
array(
[MainModel] => array(
'id' => 123
*** aditional data named identicaly to table fields (working great)***
),
[Model1] => array(
[0] => array(
[name] => Test1
),
[2] => array(
[name] => Test2
),
),
*** all other models ***
);
Результаты таблицы Model1 после первого создания и после обновления:
id main_model_id name
--------------------------------------------------------------
11 306 Test1
12 306 Test2
13 306 Test1 (Thease are dublicates)
14 306 Test2 (Thease are dublicates)
Что я могу сделать, чтобы обновить / заменить данные в hasMany и не вставлять новые значения без редактирования с помощью saveAll?
Спасибо.