我正在学习 CakePHP,其中包含一些使用 CakePHP 1.x 制作的视频教程。我使用的是最新版本的 CakePHP 2.2.2 stable,当我尝试实现编辑功能时,我遇到了这个错误:
警告 (2):非法偏移类型 [CORE\Cake\Model\Model.php,第 2666 行]
这是编辑功能的代码:
function edit($id = null){
if(!$id){
$this->Session->setFlash('Tarea invalida');
$this->redirect(array('action'=>'index'),null,true);
}
if(empty($this->data)){
$this->data = $this->Tarea->find(array('id'=>$id));
}else{
if($this->Tarea->save($this->data)){
$this->Session->setFlash('La tarea ha sido salvada');
$this->redirect(array('action'=>'index'),null,true);
}else{
$this->Session->setFlash('La tarea no ha podido ser salvada. Intentelo de nuevo');
}
}
}
而我改变了
$this->data = $this->Tarea->find(array('id'=>$id));
到
$this->data = $this->Tarea->find('all',array('conditions',array('id'=>$id)));
并且错误没有出现,但没有从数据库中检索数据......如果我实现:
$this->data = his->Tarea->find('first',array('conditions',array('id'=>$id)));
第一个值总是被检索。
希望你的帮助,丹尼尔