2016-04-03 33 views
2

我目前正在學習Codeigniter。如您所知,首次安裝軟件包時,控制器中會有一個名爲welcome.php的默認文件。如何將Codeigniter中的welcome.php更改爲類似index.php的東西?

我試圖修改頁面的index.php,這裏是代碼:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Index extends CI_Controller { 
    public function index() 
    { 
     $this->load->view('welcome_message'); 
    } 
} 

我也改變了route.php在配置文件中:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 
$route['default_controller'] = 'Index'; 
$route['404_override'] = ''; 
$route['translate_uri_dashes'] = FALSE; 

然後我訪問該頁面通過輸入以下路徑:http://localhost/CI/index.php,但它說,有兩個誤區:

  1. 消息:未定義的屬性:Index :: $ load。文件名:controllers/Index.php
  2. 消息:調用成員函數視圖()null。文件名:控制器/ Index.php

我忘了改變別的東西,以使其工作?

+0

不能創建名稱爲'index'類。 – Yash

回答

2

我下載了CI3.0.2並在我的電腦中試過了你的代碼。我遇到了同樣的問題,並且經過幾次調試,我發現了造成這個問題的原因。

你的類指數和你的函數是指數二,在PHP類,當你不定義構造函數__construct它會嘗試找到,如果有有與類名Index相同名稱的方法,所以在這種情況下index功能是類Index的構造函數。如果這混淆您看到此文件:constructor php official document

解決方案:

class Index extends CI_Controller { 
    public function __construct() 
    { 
     parent::__construct(); 
    } 
    public function index() 
    { 
     $this->load->view('welcome_message'); 
    } 
} 
+1

工作就像一個魅力 – SSD

相關問題