致命错误:使用CakePHP对非对象调用成员函数truncate()
可能重复:致命错误:使用CakePHP对非对象调用成员函数truncate(),php,cakephp,fatal-error,Php,Cakephp,Fatal Error,可能重复: 这行代码有什么问题 $this->Post->saveField('slug',$this->Text->truncate(屈折符::slug($Post['Post']['title']),25,数组('exact'=>false,'html'=>false,'ending'=>') 因为它给出了错误:致命错误:在第161行的/nfs/c03/h01/mnt/12345/domains/jazz.com/html/app/Controller/PostsController.ph
这行代码有什么问题
$this->Post->saveField('slug',$this->Text->truncate(屈折符::slug($Post['Post']['title']),25,数组('exact'=>false,'html'=>false,'ending'=>')代码>
因为它给出了错误:致命错误:在第161行的/nfs/c03/h01/mnt/12345/domains/jazz.com/html/app/Controller/PostsController.php中对非对象调用成员函数truncate()
我应该用别的东西吗?像$this->request->data['title']代码>只需添加一个条件来检查$this->Text是否可用
if ($this->Text) {
$this->Post->saveField('slug', $this->Text->truncate(Inflector::slug($post['Post']['title']),25,array('exact'=>false,'html'=>false,'ending'=>'')));
}
该错误意味着$this->Text
不是一个对象,您不能对其调用truncate
(或任何其他)方法
Text
应该是一个模型吗?如果要在控制器中使用多个模型,可以将其添加到uses
阵列中:
var $uses = array('Post','Text');
如果是组件,则应将其添加到组件
数组中
如果要查找TextHelper提供的truncate
方法,可以使用String
类。请参见此处为String::truncate
提供的示例:$this->Text
不是对象。这就是错误消息所说的。其他一切都与您想做什么和如何做有关。尤其是在控制器上下文中使用帮助程序时。这不是重复!仅仅因为我得到了相同的错误并不意味着它是用相同的答案修复的!事实上,关闭此选项将失去下面的答案。