У меня есть это:
$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 связанных таблицах?