致命错误:使用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
不是对象。这就是错误消息所说的。其他一切都与您想做什么和如何做有关。尤其是在控制器上下文中使用帮助程序时。这不是重复!仅仅因为我得到了相同的错误并不意味着它是用相同的答案修复的!事实上,关闭此选项将失去下面的答案。