2011-04-27 53 views
1

我正在努力啓用CodeIgniter中的分析器。我已經將它添加到$libraries配置數組中,所以它應該被自動加載。但我得到的錯誤...使用CodeIngniter Profiler

Fatal error: Call to a member function enable_profiler() on a non-object in C:\......\application\core\publiccontroller.php on line 6 

我的代碼是:

<?php 
class PublicController extends CI_Controller { 
    public function __construct() { 
     // enable profiler for development 
     if (ENVIRONMENT == 'development') { 
      $this->output->enable_profiler(true); 
     } 
    } 
} 
?> 

autoload.php具有....

/* 
| ------------------------------------------------------------------- 
| Auto-load Libraries 
| ------------------------------------------------------------------- 
| These are the classes located in the system/libraries folder 
| or in your application/libraries folder. 
| 
| Prototype: 
| 
| $autoload['libraries'] = array('database', 'session', 'xmlrpc'); 
*/ 

$autoload['libraries'] = array('profiler'); 

我在做什麼錯?我正在使用CI版本2

回答

2

正如注意:此建議解決了CI 1.x中的類似問題,但未在CI 2中測試。 問題是,我懷疑是您在調用構造函數在對象完全啓動之前。你能確認$ this-> load是否存在?如果你把parent::__construct();作爲構造函數的第一行會發生什麼?

+2

這是完全正確的,需要在調用它的方法之前構造父類CI_Controller。 @Webnet,你不需要加載分析器:它不是一個庫,它是總是加載的Output類的一部分。 – 2011-04-27 04:49:56

+0

Doh!史詩般的失敗,謝謝! – Webnet 2011-04-27 13:28:04

+0

@Webnet我知道這個的原因是因爲我在CI模型中工作的問題多於我的* headdesks *。 – cwallenpoole 2011-04-27 14:40:05