如何将Codeigniter中的welcome.php更改为index.php?

时间:2016-04-03 04:48:17

标签: php codeigniter

我正在学习Codeigniter。如您所知,首次安装软件包时,控制器中会有一个名为welcome.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.   
  3. 消息:在null上调用成员函数视图()。文件名:控制器/ index.php的
  4.   

我是否忘记改变别的东西以使其有效?

1 个答案:

答案 0 :(得分: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');
    }
}