我有一个现有的展示柜hasOne
画廊。
Gallery 已经存在并带有foreignKeyshowcase_id
设置为适当的值。
图库有一个文本字段,我尝试通过展示控制器更新该文本字段。
我得到的结果是一个额外的画廊条目,沿着原始条目,而不是原始条目的更新。
我究竟做错了什么?
我的展示视图如下所示:
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();
我的展示控制器功能:
$uses = array('Showcase','Gallery')
function update(){
if(!empty($this->data)){
$this->Showcase->saveAll($this->data, array('validate'=>'first'));
}
}
展示模型$hasOne = 'Gallery'
和画廊模型$belongsTo = 'Showcase'
.
Is $this->Showcase->saveAll()
在这里使用正确的函数?或者我是否需要更新图库控制器中的图库条目?这可能会起作用,但看起来很不优雅。
我明白你所说的不优雅是什么意思,如果它意识到你有一个 hasOne 关系并因此更新任何现有记录,那就太好了。
然而目前在框架内我认为你最好的选择是添加echo $form->input('Gallery.id', array('type'=>'hidden', 'value'=>$showcase['Gallery']['id']));
以你的观点。
作为旁注。在当前定义的控制器操作中$showcase
如果你把它分配给$this->data
那么你就不需要总是指定'value' => ...
在您的表单输入中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)