致命错误:在非对象 cakephp 上调用成员函数 save()
Posted
技术标签:
【中文标题】致命错误:在非对象 cakephp 上调用成员函数 save()【英文标题】:Fatal error: Call to a member function save() on a non-object cakephp 【发布时间】:2014-03-28 20:35:43 【问题描述】:我是 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';
?>
【问题讨论】:
您是否尝试过自定义变形器?我猜默认需要ColaboradorsController
。
我可以试试,但你必须指定如何做,因为我是蛋糕的新手,对不起..
【参考方案1】:
将控制器文件名更改为 ColaboradorsController.php 和控制器名称 ColaboradorsController
或者您可以将其添加到您的控制器:
public $uses = 'Colaborador';
【讨论】:
【参考方案2】:模型必须有一个类名,例如行政
初始化的 var $name
将是您的表
因此,当您尝试保存数据时,您必须将模型名称引用到 $this->admin->save($this->data)
。
这将从错误中保存
【讨论】:
【参考方案3】:您需要先加载模型,然后再调用保存函数。
你可以通过两种方式加载模型
首先:在你需要显式加载 Colaborador 模型的控制器中定义 $uses:
var $uses = array('Colaborador','MonthlyReturn','Employee','Company');
第二:你可以像这样使用loadModel函数
$this->loadModel('Colaborador');
在保存函数之前使用这个 loadModel 函数。
我希望这对您有所帮助。
【讨论】:
以上是关于致命错误:在非对象 cakephp 上调用成员函数 save()的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:在非对象上调用成员函数 getLoginUrl()
PDO 致命错误:在非对象上调用成员函数 prepare()
致命错误:在非对象上调用成员函数 fetch_array()
Zend_Mail generateMessage() 导致致命错误:在非对象上调用成员函数 getContent()