我有问题。我通过使用'_remap'函数覆盖了CI对方法的默认调用。当我传递一个参数时,它都可以正常工作,这当然是覆盖方法(uri的第二段)。但是,按照用户指南的说明,当我尝试通过下面的方法检索URL的其他段时,$ params数组是空的?我在main_view上的$ a变量上使用了var转储,它总是显示数组是空的,即使uri的第3段存在也是如此。
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 :(得分:1)
我也有类似的问题,所以我做了一些对我有用的调整:
$segs = $this->uri->segment_array();
$params=array_slice($segs, array_search($method, $segs));