重映射带可选参数的codeigniter索引方法
问题描述:
在我的codeigniter控制器中,我只有带可选参数的索引函数。如果参数存在,我加载一个视图,否则我加载另一个。我用这个功能_remap:重映射带可选参数的codeigniter索引方法
function _remap($method){
$param_offset = 2;
// Default to index
if (! method_exists($this, $method))
{
// We need one more param
$param_offset = 1;
$method = 'index';
}
// Since all we get is $method, load up everything else in the URI
$params = array_slice($this->uri->rsegment_array(), $param_offset);
// Call the determined method with all params
call_user_func_array(array($this, $method), $params);
}
的问题是,当我在索引功能检查参数它总是值等于0,其为我设置为默认值。
不,它不起作用,因为方法包含可选参数和$ params的名称为空。另外如果我设置$ params [] = $方法它不起作用。 – pindol
您能否提供您想要实现的路由行为的几个示例?例如'controller/test_method/123 ==> controller-> index('test_method',123)' – sepehr
是的。我可以做2个例子:一个没有参数:domain.com/ci_folder/projects ==> projects-> index(没有参数),另一个有一个arg是domain.com/ci_folder/projects/project-name ==>项目 - >索引(项目名称) – pindol