使用CakePHP查找记录时出错

使用CakePHP查找记录时出错,cakephp,find,php,Cakephp,Find,Php,我正在学习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

我正在学习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 = his->Tarea->find('first',array('conditions',array('id'=>$id)));
始终检索第一个值


希望您的帮助,Daniel

您的
find
语句的以下部分是错误的:
array('conditions',array('id'=>$id))
。它必须是:
array('conditions'=>array('id'=>$id))

嗨,我解决了它,这就是我刚刚实现的:$this->data=$this->Tarea->find('first',array('conditions'=>array('id'=>$id));我和所有人在一起,而不是第一个…从第一个变为第一个,现在它起作用了
$this->data = his->Tarea->find('first',array('conditions',array('id'=>$id)));