J'ai une vitrine existante hasOne
Galerie. La galerie existe déjà avec la clé étrangère showcase_id
définie sur la valeur appropriée. La galerie comporte un champ de texte que j'essaie de mettre à jour via le contrôleur Showcase. Le résultat obtenu est une entrée supplémentaire de la Galerie, le long de l'original, au lieu d'une mise à jour de l'entrée d'origine.Mise à jour hasone relation se comporte étrangement (cakephp)
Qu'est-ce que je fais mal?
Ma vitrine vue se présente comme suit:
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();
Ma fonction Vitrine-contrôleur:
$uses = array('Showcase','Gallery')
function update(){
if(!empty($this->data)){
$this->Showcase->saveAll($this->data, array('validate'=>'first'));
}
}
Le modèle de démonstration $hasOne = 'Gallery'
et le modèle de la galerie $belongsTo = 'Showcase'
.
$this->Showcase->saveAll()
est la fonction appropriée à utiliser ici? Ou dois-je peut-être mettre à jour l'entrée de la galerie dans le contrôleur de la galerie? Cela fonctionnera probablement, mais semble si peu élégant.
excellent, cela fonctionne parfaitement. –