我整晚都在试着更新这样的记录:
$r = $this->Question->read(NULL, $question['Question']['id']);
debug($r);// This is a complete Question array
$this->Question->set('status', 'version');
$s = $this->Question->save();
//$s = $this->Question->save($r['Question']);//this also doesn't work
debug($s); // = False every time!! Why??
exit;这两条评论显示了我尝试过的变体,但也不起作用。
@Dipesh:
$this->data = $this->Question->read(NULL, $question['Question']['id']);
$this->Question->status = 'version';
$s = $this->Question->save($this->data);
debug($s);
exit;@Dipesh II:
$this->request->data = $this->Question->read(NULL, $question['Question']['id']);
debug($this->data);
//$this->Question->status = 'version';
$this->request->data['Question']['status'] = 'version';
$s = $this->Question->save($this->request->data);
//$s = $this->Question->save($r['Question']);
debug($s);
exit;@Dipesh III:(已删除)
发布于 2013-10-25 02:42:59
cakePHP在Models::set()和Controller::set();中都提供了一个名为set()的方法
关于Controller::set()此方法用于从任何控制器方法设置视图级别的变量。例如,从模型中获取记录并将其设置为视图,以便将其显示给客户端,如下所示
$data = $this->{ModelName}->find('first');
$this->set('dataForView',$data) // now you can access $data in your view as $dataForView关于Model:: set ()此方法用于在模型上设置数据,传递的数组格式必须与Model::save()方法中使用的格式相同,即如下所示
$dataFormModel = array('ModelName'=>array('col_name'=>$colValue));
$this->{ModelName}->set($dataForModel);Model::set()将仅接受此格式的参数,一旦成功设置,您可以执行以下操作
通过调用Model::save(),$isValid = $this->ModelName->validate();
https://stackoverflow.com/questions/16330401
复制相似问题