2012-08-01 134 views
1

我想學習Codeigniter。我正在嘗試在我的CI應用程序中使用application/core/MY_Controller。 MY_Controller.php爲:擴展核心類Codeigniter - 404錯誤

class MY_Controller extends CI_Controller { 

    protected $data = array(); 

    function __construct() { 
    parent::__construct(); 
    } 

    function render_page($view) { 
    //do this to don't repeat in all controllers... 
    $this->load->view('templates/header', $this->data); 
    //menu_data must contain the structure of the menu... 
    //you can populate it from database or helper 

    $this->load->view($view, $this->data); 
    $this->load->view('templates/footer', $this->data); 
    } 

} 

現在我就開始給家裏寫信控制器:

class Home extends MY_Controller { 
     function __construct() { 
    parent::__construct(); 
    } 

     public function view($page = 'home') 
     { 
     $this->load->helper('text'); 
      $data['records']= $this->services_model->getAll(); 
      if (! file_exists('application/views/pages/'.$page.'.php')) 
      { 
       // Whoops, we don't have a page for that! 
       show_404(); 
      } 

      $data['title'] = ucfirst($page); // Capitalize the first letter 


      $this->load->view('pages/'.$page, $data); 


     } 

我的意見

+pages 
    +home.php 
+templates 
    +footer.php 
    +header.php. 

以下文件夾中的我的配置和路由文件。

$config['base_url'] = 'http://localhost/~ytsejam/kirmiziblog/'; 
$config['index_page'] = 'index.php'; 
$route['default_controller'] = 'pages/view'; 
$route['(:any)'] = 'pages/view/$1'; 

我收到404頁未找到錯誤。我如何更改我的應用程序以使用MY_Controller?

+0

你需要調用'home'控制器,而不是'pages'。 – 2012-08-01 14:06:06

+0

$ this-> load-> view('home /'.$ page,$ data); ...像這樣? – ytsejam 2012-08-01 14:08:25

+0

像這樣:'$ route ['default_controller'] ='home/view'; $ route ['(:any)'] ='home/view/$ 1';' – 2012-08-01 14:09:12

回答

0

我也有擴展核心類的這個問題。我的問題是在我的本地服務器上工作,而不是在我的生產服務器上。我在生產中收到了404錯誤,並且只在使用類擴展的控制器上。經過一番研究,我發現我的本地服務器運行的是php版本5.3.x,而我的生產服務器運行的是5.2.x.要解決這個問題,我不得不將我的生產服務器升級到5.3。

要了解您的網站使用PHP的什麼版本,在您看來把這個命令:

<?php echo phpversion() ?>