用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5980|回复: 6
收起左侧

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

[复制链接]
发表于 2008-1-14 11:26:42 | 显示全部楼层 |阅读模式
我是初学者,如题,我改routes.php的$route['default_controller'] = ""为routes.php的$route['default_controller'] = "default"或者routes.php的$route['default_controller'] = "index"运行时,问题报错,改成其它名称就没问题。
发表于 2008-1-14 12:25:09 | 显示全部楼层
你那报什么错误?
发表于 2008-1-14 15:41:04 | 显示全部楼层
default是php的关键字,不能用的。至于index么…… 不太清楚,貌似不在reserved keywords里,但也许CI内部屏蔽掉了。
发表于 2008-1-14 17:00:48 | 显示全部楼层
我记得我用过 index~~
发表于 2012-2-10 14:09:33 | 显示全部楼层
index作为默认控制器不可以,我也是报一些莫名其妙的错误改成其他就没问题(我改成了home)。
发表于 2012-3-29 17:39:15 | 显示全部楼层
本帖最后由 moony 于 2012-3-29 17:41 编辑

index可以做默认控制器,但是如果他的默认方法也是index()就会报错,因为php会把index()当作构造函数来处理。
可以修改默认方法来化解这个冲突,不知道哪里可以设置控制器的默认方法,我的做法是在index控制器中加入_remap()方法来重置默认方法。
PHP复制代码
 
public function _remap($method)
{
        if ($method == 'index')
        {
                $this->home();
        }
}
复制代码

不知道对不对,求大牛指教!~
发表于 2012-3-29 18:14:57 | 显示全部楼层
改了这里的设置,要有对应的控制器

本版积分规则