2012-04-06 3 views
0

Possible Duplicate:
Call to a member function on a non-objectФатальная ошибка: Вызов функции срезанным член() на не-объект с помощью CakePHP

Что с этой строки кода?

$this->Post->saveField('slug', $this->Text->truncate(Inflector::slug($post['Post']['title']),25,array('exact'=>false,'html'=>false,'ending'=>'')));

Как это дает мне ошибку: Fatal error: Call to a member function truncate() on a non-object in /nfs/c03/h01/mnt/12345/domains/jazz.com/html/app/Controller/PostsController.php on line 161

Должен ли я использовать что-то другое? Как $this->request->data['title'];

+0

'$ this-> Text' не является объектом. Об этом говорится в сообщении об ошибке. Все остальное имеет значение для того, что вы хотите сделать. – hakre

+0

особенно с помощниками, используемыми в контексте контроллера. – mark

+0

Это не дубликат! Просто потому, что я получаю ту же ошибку, не означает, что она исправлена ​​с тем же ответом! Фактически, закрытие этого приведет к потере ответа ниже. – Cameron

ответ

1

ошибка означает, что $this->Text не является объектом, и вы не можете назвать truncate (или другой) способ на этом.

Действительно ли Text должен быть моделью? Если вы хотите использовать несколько моделей в контроллере вы можете добавить его в uses массив:

var $uses = array('Post','Text'); 

Если это компонент, вы должны добавить его в components массив.

Вы можете использовать класс String, если вы ищете метод truncate, который предоставляет TextHelper. См. Пример, приведенный для String::truncate здесь: http://book.cakephp.org/2.0/en/core-utility-libraries/string.html

+0

Текст не является помощником – Cameron

0

просто добавить условие, чтобы проверить, является ли $ this-> Текст доступен или нет

if ($this->Text) { 
     $this->Post->saveField('slug', $this->Text->truncate(Inflector::slug($post['Post']['title']),25,array('exact'=>false,'html'=>false,'ending'=>''))); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^