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

[控制器] 设置default_controller不能带参数?

[复制链接]
发表于 2017-6-29 23:18:46 | 显示全部楼层 |阅读模式
在routes.php里面设置:$route['default_controller'] ='welcome';,这个是系统缺省的没问题!

改为:$route['default_controller'] ='welcome/index';,这个也没问题!

改为:$route['default_controller'] ='welcome/index/1';,给方法增加一个参数,结果页面就是404 Page Not Found

各位大神有没有解决方案?

 楼主| 发表于 2017-6-30 09:13:25 | 显示全部楼层
已经解决。问题出在Router.php的下面一句
if (sscanf($this->default_controller, '%[^/]/%s', $class, $method) !== 2)
它只解析class和method,不负责param。
所以做一个MY_router扩展一下即可。

注:需要支持参数的目的是方便后台设置某一个文章或者任何一个应用页做首页。
发表于 2017-6-30 10:19:22 | 显示全部楼层
路由里肯定不能带参数啊,不建议你这样扩展路由类,默认参数你可以放到控制器的方法里,路由就应该做路由应该做的事情。
 楼主| 发表于 2017-6-30 10:36:32 | 显示全部楼层
会认真考虑hex的建议。谢谢!

本版积分规则