Codeigniter:'_remap'第二个参数(应该是url段)正在返回空吗?

问题描述:

我遇到问题。我已经使用'_remap'函数覆盖了CI对方法的默认调用。当我传递一个参数时,这一切都按我应该的方式工作,这当然是重写方法(uri的第二部分)。但是,按照用户指南的说明,当我尝试通过下面的方法检索URL的其他部分时,$ params数组是空的?我在main_view的$ a变量上使用了一个var转储,并且它始终显示该数组是空的,即使uri的第三部分存在。Codeigniter:'_remap'第二个参数(应该是url段)正在返回空吗?

CI用户指南指出'方法名称作为可选的第二个参数传递给_remap()之后的任何额外的段“(http://codeigniter.com/user_guide/general/controllers.html)似乎并非如此。有谁知道我可能会做错什么?

class Services extends Controller { 
var $group = 'services'; 
function Services() 
{ 
    parent::Controller(); 
    $this->load->helper('url'); 
} 

public function _remap($subPage, $params = array()){ 

    $pageData = $this->page_builder->buildPage($this->group,$subPage); 
    if($subPage != 'index'){ $pageData['thisPage'] = $this->group .'/' . $subPage; } 
    else{ $pageData['thisPage'] = $this->group; } 
    $pageData['a'] = $params; 
    $this->load->view('main_view', $pageData); 
} 

}

感谢。

+0

........没人? – Inigo 2011-05-10 09:44:02

我也曾经有过类似的问题,所以我做了一个小的调整,为我工作:

$segs = $this->uri->segment_array(); 
     $params=array_slice($segs, array_search($method, $segs));