由于工作并无需求,因此对于各种框架并没有什么深入研究,最近闲暇之余,准备来好好研究下比较常用codeigniter框架,没想到刚一入手就出现了一些小问题,下面是该问题的具体描述以及对应的解决办法。
问题描述:codeigniter中默认的主页文件为application/controllers/welcome.php,为了方便以后分类管理,因此在做测试的时候新建一个文件夹命名为program1,新建一个文件命名为index.php的文件,此时仿照welcome.php改写class名称为Index,然后改写application/config/routes.php,更改$route['default_controller'] = 'program1/index',然后刷新主页,本以为会成功,但是谁层想到居然报错,具体内容如下,看到此种情况小编甚是郁闷,没想到刚接触codeigniter便出师不利,当然这并非什么大问题,下面为该问题的具体解决方案。
解决办法:
1.看到此种情况小编首先想到的就是命名的冲突,因为很多程序都有内部保留的关键字,一旦和保留的关键字一致,就会发生冲突,因此首先改变一下文件名称,换成了test.php,更改对应选项,然后刷新,果然解决了该问题,那么index是不是codeigniter的保留关键字呢?答案是肯定的,是,除了index,还有其他很多保留的关键字,我们可以打开以下网址查看http://codeigniter.org.cn/user_guide/general/reserved_names.html,以后对控制器命名的时候避免这些关键字。
2.对于方法1很多朋友该闹别扭了,说我非要使用index命名我的控制器,难道就没有解决办法了?你别说,还真有办法可以解决这个问题,我们只需要在该类中添加一个构造函数即可,具体代码如下,不要问小编为什么这样能够解决问题,对于codeigniter小编还只是个小白,没有深入研究,这只是小编遇到问题的时候百度而来,能够解决该问题便拿来借花献佛。
class Index extends CI_Controller {对于codeigniter刚接触便能找到问题,看来小编真是找问题的天才,哈哈,好了,废话不多说了,小编继续潜心研究codeigniter去了,在遇到什么问题的话会第一时间做好笔记发布出来。
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->view('welcome_message');
}
}