szlinz 发表于 2008-1-14 11:26:42

解惑:CI中的默认控制器不是不能是“default”或者“index”

我是初学者,如题,我改routes.php的$route['default_controller'] = ""为routes.php的$route['default_controller'] = "default"或者routes.php的$route['default_controller'] = "index"运行时,问题报错,改成其它名称就没问题。

Hex 发表于 2008-1-14 12:25:09

你那报什么错误?

沧蓝 发表于 2008-1-14 15:41:04

default是php的关键字,不能用的。至于index么…… 不太清楚,貌似不在reserved keywords里,但也许CI内部屏蔽掉了。

Hex 发表于 2008-1-14 17:00:48

我记得我用过 index~~

cpass 发表于 2012-2-10 14:09:33

index作为默认控制器不可以,我也是报一些莫名其妙的错误改成其他就没问题(我改成了home)。

moony 发表于 2012-3-29 17:39:15

本帖最后由 moony 于 2012-3-29 17:41 编辑

index可以做默认控制器,但是如果他的默认方法也是index()就会报错,因为php会把index()当作构造函数来处理。
可以修改默认方法来化解这个冲突,不知道哪里可以设置控制器的默认方法,我的做法是在index控制器中加入_remap()方法来重置默认方法。

public function _remap($method)
{
      if ($method == 'index')
      {
                $this->home();
      }
}
不知道对不对,求大牛指教!~

gxcnvip 发表于 2012-3-29 18:14:57

改了这里的设置,要有对应的控制器
页: [1]
查看完整版本: 解惑:CI中的默认控制器不是不能是“default”或者“index”