У меня есть существующая витрина, которая hasOne
Галерея.
Галерея уже существует с соответствующим значением ForeignKey showcase_id
.
В галерее есть текстовое поле, которое я пытаюсь обновить через Showcase-контроллер.
В результате я получаю дополнительную запись в галерее вместе с исходной вместо обновления исходной.
Что я делаю не так?
Мой Showcase-view выглядит следующим образом:
echo $form->create('Showcase', array('action'=>'update'));
echo $form->input('Showcase.id', array('type'=>'hidden', 'value'=>$showcase['Showcase']['id']));
echo $form->input('Gallery.fulltext', array('type'=>'textarea', 'between'=>'<br>', 'value'=>$showcase['Gallery']['fulltext']));
echo $form->submit('Submit text');
echo $form->end();
Функция My Showcase-контроллер:
$uses = array('Showcase','Gallery')
function update(){
if(!empty($this->data)){
$this->Showcase->saveAll($this->data, array('validate'=>'first'));
}
}
Модель Витрина $hasOne = 'Gallery'
и модель Галерея $belongsTo = 'Showcase'
.
Является ли $this->Showcase->saveAll()
подходящей функцией для использования здесь? Или мне, возможно, нужно обновить запись галереи в контроллере галереи? Это, вероятно, сработает, но выглядит так не элегантно.