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

[URL] 请教Hex,关于CI的URL路由解析问题。

[复制链接]
发表于 2010-11-5 17:11:29 | 显示全部楼层 |阅读模式
Codeigniter控制器中的方法可以通过增加参数的方式获得get的参数,
例如要获得http://localhost/codeigniter/index.php/view/index/a/b中a和b
可以在view控制器中这样写:
PHP复制代码
 
function index($a,$b)
{
    echo $a;
    echo $b;
}
 
复制代码

通过读代码知道了URI.php中的方法_explode_segments()可以把uri_string解析为segments数组,
然后ci是怎样把segments数组中第3和第4个值赋给index方法中的$a和$b的呢?
请教Hex,谢谢。
发表于 2010-11-5 17:29:15 | 显示全部楼层
这个很简单的。我写个例子给你看看就知道了

foreach($_GET as $key=>$val)
{
   // ....
}
 楼主| 发表于 2010-11-5 17:32:49 | 显示全部楼层
继续阅读代码,自己解决了,
看CodeIgniter.php第236行代码:
PHP复制代码
call_user_func_array(array(&$CI, $method), array_slice($URI->rsegments, 2));
复制代码

原来是用的Callback方法。
 楼主| 发表于 2010-11-5 17:33:43 | 显示全部楼层
用了无敌的debug方法,一行行跟踪出来的,好累~~
发表于 2010-11-5 17:40:14 | 显示全部楼层
哦。就是说怎么付给CI内置数组的是吧

本版积分规则