2014-01-24 42 views
7

enter image description here

背景信息

我剛剛安裝了CI的全新副本,並修改了歡迎控制器包括url助手,所以我可以調用方法base_url。然後我嘗試從調用此方法home.php

問題: 我收到以下錯誤信息:

Message: Undefined property: Welcome::$load 
Filename: controllers/welcome.php 

代碼:什麼我的歡迎控制器現在看起來

這如:

class Welcome extends CI_Controller { 
    public function __construct() 
    { 
     $this->load->helper('url');  
    } 

    public function index() 
    { 
     $this->load->view('home'); 
    } 
} 

視圖看起來是這樣的:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width = device-width">  
    <meta name="description" content=""> 
    <!-- Le styles -->  
    <title>test site</title> 
    <script> 
     var BASEPATH = "<?php echo base_url(); ?>"; 
    </script> 
    <link href="<?php echo base_url('assets/css/bootstrap.min.css')?>" rel="stylesheet"> 
    <link href="<?php echo base_url('assets/css/navbar.css')?>" rel="stylesheet">  
    </head> 

該系統是死在控制器的構造函數中的行,其中我嘗試加載庫...

什麼我迄今所做的:

  1. 閱讀說明書。 http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html
  2. 嘗試,包括在config/autoload.php的URL庫,像這樣:

    $autoload['helper'] = array('url');

但我仍然得到錯誤。 有什麼建議嗎?

謝謝。

屏幕截圖:

回答

27

你忘了一件至關重要的事情;

class Welcome extends CI_Controller { 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->helper('url'); //Loading url helper  
    } 

    public function index() 
    { 
     $this->load->view('home'); //Loading home view 
    } 
} 

parent::__construct。如果你不這樣做;當您在自己的控制器中覆蓋__construct時,Controller不會繼承它的抽象層。

只要你不覆蓋你的__construct一切都好。它只發生在你覆蓋它時。您沒有load功能,因爲歡迎類是空的(無繼承),即使它擴展了CI_Controller(但覆蓋了__construct)。

+0

它是有道理的......不幸的是,這是給我另一個錯誤。請檢查我的文章的編輯1部分。 – dot

+0

哈哈,你真的複製了我的行。我犯了一個錯字。它應該是';'而不是':''parent :: __ construct();' – 2014-01-24 18:42:15

+0

我做到了!再次! – dot