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


Fatal error: Call to a member function save() on a non-object cakephp

我是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!');
        }
    }
}
?>

这是我的collaborador。php文件:

<?php
    class Colaborador extends AppModel{
        public $name = 'Colaborador';
    }
?>

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

或者你可以把这个添加到控制器中:

public $uses = 'Colaborador';

Model必须有一个类名,例如admin和var $name初始化将是您的表

所以当你试图保存数据时,你必须将模型名称引用到$this->admin->save($this->data)

这将保存从错误

您需要在调用save函数之前先加载Model。

你可以用两种方式加载模型

第一:在你的控制器中定义$uses,你需要显式地加载协作器模型:

 var $uses = array('Colaborador','MonthlyReturn','Employee','Company');
第二:你可以像这样使用loadModel函数
 $this->loadModel('Colaborador');

在save函数之前使用loadModel函数

我希望这对你有帮助。