【问题标题】:Update hasone relation behaves strangely (cakephp)更新 hasone 关系行为异常(cakephp)
【发布时间】:2010-01-10 14:54:55
【问题描述】:

我有一个hasOne Gallery 的现有展示柜。 Gallery 已经存在,foreignKey showcase_id 设置为正确的值。 Gallery 有一个文本字段,我尝试通过 Showcase-controller 对其进行更新。 我得到的结果是一个额外的画廊条目,与原始条目一样,而不是原始条目的更新。

我做错了什么?

我的展示视图如下所示:

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'));

}

}

Showcase 模型$hasOne = 'Gallery' 和Gallery 模型$belongsTo = 'Showcase'

$this->Showcase->saveAll() 是否适合在这里使用?或者我是否可能需要更新 Gallery 控制器中的 Gallery 条目?这可能会奏效,但看起来太不优雅了。

【问题讨论】:

    标签: cakephp relationship


    【解决方案1】:

    我明白你说的不优雅是什么意思,如果它意识到你有一个 hasOne 关系并因此更新任何现有记录,那就太好了。

    但目前在框架内,我认为您最好的选择是将echo $form->input('Gallery.id', array('type'=>'hidden', 'value'=>$showcase['Gallery']['id'])); 添加到您的视图中。

    作为旁注。在当前定义 $showcase 的控制器操作中,如果您改为将其分配给 $this->data,则您无需始终在表单输入中指定 'value' => ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      相关资源
      最近更新 更多