0

我正在学习 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)));

第一个值总是被检索。

希望你的帮助,丹尼尔

4

1 回答 1

1

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

于 2012-09-23T13:44:01.513 回答