更新 hasone 关系表现得很奇怪 (cakephp)

2024-01-02

我有一个现有的展示柜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(使用前将#替换为@)

更新 hasone 关系表现得很奇怪 (cakephp) 的相关文章

随机推荐