致命错误:在非对象cakephp上调用成员函数save()

时间:2014-03-28 20:35:43

标签: php cakephp save

我是cakephp的新手,所以我收到了以下错误消息:

http://imageshack.com/a/img716/3163/ofvq.png

这是我的CalaboradoresController.php文件:

<?php

class ColaboradoresController extends AppController{

    public $name = 'Colaboradores';

    public function add(){
        if($this->data){
            if($this->Colaborador->save($this->data))
                $this->Session->setFlash ('Colaborador adicionado com sucesso!');
        }
    }

}

?>

这是我的Colaborador.php文件:

<?php

    class Colaborador extends AppModel{

        public $name = 'Colaborador';

    }

?>

3 个答案:

答案 0 :(得分:1)

将控制器文件名更改为ColaboradorsController.php和控制器名称ColaboradorsController

或者你可以将它添加到你的控制器:

public $uses = 'Colaborador';

答案 1 :(得分:1)

模型必须具有类名,例如管理 并且初始化的var $name将是您的表

因此,当您尝试保存数据时,必须将型号名称引用至$this->admin->save($this->data)

这将从错误中保存

答案 2 :(得分:0)

您需要在调用保存功能之前先加载模型。

您可以通过2种方式加载模型

首先:在控制器中定义$ uses,你需要显式加载Colaborador模型:

 var $uses = array('Colaborador','MonthlyReturn','Employee','Company');

第二:您可以像这样使用loadModel函数

 $this->loadModel('Colaborador');

在保存功能之前使用此loadModel函数。

我希望这会对你有所帮助。