@finesoft2009
Администратор сервера http://fns.kz/

Yii Framework: почему появляется ошибка PHP notice Trying to get property of non-object?

Друзья, никак не могу понять почему на странице вылазит "PHP notice Trying to get property of non-object" После переноса, Базы перенес, файлы перенес. не могу понять в чем проблема.

В браузере выходит.

PHP notice

Trying to get property of non-object

/home/dari_kz/data/www/dari.kz/protected/models/Pages.php(323)

311 return $news;
312 }
313
314 public function addView($pageId) {
315 self::model()->updateCounters(array('views' => 1), 'id=?', array($pageId));
316 }
317
318
319 public function getOnePageInCategory($sefname) {
320 $criteria = new CDbCriteria;
321 $category = Categories::model()->getCategoryBySefName($sefname);
322
323 $criteria->compare('category_id', $category->id);
324 $criteria->compare('active', '1');
325 $criteria->compare('lang_id', Controller::getLangId());
326 $criteria->limit = 1;
327 $criteria->order = 'position ASC';
328 $page = Pages::model()->find($criteria);
329
330 return $page;
331 }
332
333
334 public static function getSearchPages(CDbCriteria $criteria, CPagination $pagination, $searchString) {
335 //$pagination->pageSize = 10;
Stack Trace
#0
– /home/dari_kz/data/www/dari.kz/protected/controllers/MainpageController.php(21): Pages->getOnePageInCategory("mainpage")
16
17 public function actionIndex() {
18
19 $this->layout = '';
20 $this->isMainpage = true;
21 $mainpage = Pages::model()->getOnePageInCategory('mainpage');
22
23 $this->render('index', array('mainpage' => $mainpage));
24 }
25
26 public function actionError() {
#1
+ /home/dari_kz/data/www/dari.kz/framework/web/actions/CInlineAction.php(50): MainpageController->actionIndex()
#2
+ /home/dari_kz/data/www/dari.kz/framework/web/CController.php(309): CInlineAction->runWithParams(array())
#3
+ /home/dari_kz/data/www/dari.kz/framework/web/CController.php(287): CController->runAction(CInlineAction)
#4
+ /home/dari_kz/data/www/dari.kz/framework/web/CController.php(266): CController->runActionWithFilters(CInlineAction, array())
#5
+ /home/dari_kz/data/www/dari.kz/framework/web/CWebApplication.php(283): CController->run("")
#6
+ /home/dari_kz/data/www/dari.kz/framework/web/CWebApplication.php(142): CWebApplication->runController("")
#7
+ /home/dari_kz/data/www/dari.kz/framework/base/CApplication.php(162): CWebApplication->processRequest()
#8
– /home/dari_kz/data/www/dari.kz/index.php(13): CApplication->run()
08 defined('YII_DEBUG') or define('YII_DEBUG',true);
09 // specify how many levels of call stack should be shown in each log message
10 defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
11
12 require_once($yii);
13 Yii::createWebApplication($config)->run();
14

2015-04-02 02:33:14 Apache/2.2.22 (Ubuntu) Yii Framework/1.1.12

Если обновить движок, то выходит ошибка:

Ошибка 500

Trying to get property of non-object
  • Вопрос задан
  • 18129 просмотров
Пригласить эксперта
Ответы на вопрос 3
w999d
@w999d
Web-developer
эта ошибка происходит когда вы пытаетесь обратиться к свойству переменной, которая не является объектом (чаще всего null)
например,
function f(){
   return null;// где-то произошла ошибка, возвращаем null заместо объекта
}
$x = f();
$x->a = 5;

в данном случае
$criteria->compare('category_id', $category->id); // $category - не является объектом

сделайте проверку после
$category = Categories::model()->getCategoryBySefName($sefname);


Специально для FanatPHP
function f(){
    $x = null;
    $x->id = 1;
    return $x;
}

$f = f();
var_dump($f);
/*
PHP Warning:  Creating default object from empty value in /test.php on line 6
object(stdClass)#1 (1) {
  ["id"]=>
  int(1)
}
*/
Ответ написан
Isolution666
@Isolution666
творческая личность
Здравствуйте, Антон.

Скорее всего у вас так настроен сервер, в вашей версии php должен быть файл php.ini
Посмотрите, что написано в строке с параметром
error_reporting = '....
Иногда, в серверах указывается вывод ошибки, некоторые при настройке Битрикса там меняют параметры.

Чтобы не вылезала ошибка "Trying to get property of non-object", напишите так:
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT

На виртуальных хостингах эти ошибки скрываются, и существуют как паранормальные явления, никто не верит, что эти ошибки есть, но они существуют, просто тайные хостинг-провайдеры скрывают от вас правду, чтобы вы не знали об этом, но уверяю вас non-object существует!
Это был сарказм, конечно же вы это знаете, иначе бы не написали об этом здесь.
Ответ написан
Mike77
@Mike77
lamp sf2 yii разработчик
категории нету
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы