Intereting Posts

обновление связанных таблиц в торте

У меня есть это:

$this->request->data['Person']['person_id'] = $this->Session->read('insertedPersonID'); $savedPerson = $this->Person->saveAll($this->request->data, array('validate'=>'first')); 

который обновляет выбранную строку, но связанные таблицы, такие как PersonColor и PersonParts, не обновляются, а вместо этого вставляют новые строки.

Я думал, что торт автоматически обновляет связанные таблицы так же, как и идентификатор главной таблицы, который является внешним ключом для двух других таблиц, предоставляется после этого:

 $savedPerson = $this->Person->saveAll($this->request->data, array('validate'=>'first')); 

вставляет в таблицу Person и другие две связанные две таблицы в порядке.

Как мне заставить его обновлять и другие две таблицы?

Изменить: для модельных отношений:

Модель персонажа:

 public $hasMany = array( 'PersonParts' => array( 'className' => 'Part', 'foreignKey' => 'part_person_id' ), 'PersonColors' => array( 'className' => 'Color', 'foreignKey' => 'color_person_id' ) ); 

Модель детали:

 public $belongsTo = array( 'PartPerson' => array( 'className' => 'Person', 'foreignKey' => 'part_person_id' ) ); 

Цветная модель:

 public $belongsTo = array( 'ColorPerson' => array( 'className' => 'Person', 'foreignKey' => 'color_person_id', 'conditions' => '', 'fields' => '', 'order' => '' ) ); 

изменить 2

var_dump данных $ this-> request->

 array(3){ ["Person"]=>array(4){ ["person_user_id"]=>string(1)"3" ["person_name"]=>string(9)"Britney" ["person_category_id"]=>string(2)"16" ["visibility"]=>string(1)"1" ["person_id"]=>string(1)"71" } ["PersonParts"]=>array(1){ [0]=>array(3){ ["part_name"]=>string(4)"hands" ["quantity"]=>string(1)"2" ["part_part_type_id"]=>string(1)"1" } } ["PersonColors"]=>array(2){ [0]=>array(4){ ["color_name"]=>string(3)"blue" ["test_field1"]=>string(1)"8" ["test_field2"]=>string(1)"9" ["position"]=>int(1) } [1]=>array(2){ ["color_name"]=>string(5)"red" ["position"]=>int(2) } } } 

Примечание. Этот var_dump показывает только ["person_id"] => string (1) "71" в массиве Person, поскольку добавленное поле, чтобы сделать торт, сделать обновление, а не вставлять … person_id не отображается под PersonParts и PersonColors здесь так как он работает не так. Что я должен пройти или как мне сделать обновление на других 2 связанных таблицах?