如果要更改默认 CI 路由的行为,则应使用 _remap。
例如,如果您设置维护并希望阻止任何特定控制器运行,您可以使用 _remap() 函数加载您的视图,并且不会调用任何其他方法。
另一个例子是当你的 URI 中有多个方法时。例子:
site.com/category/PHP
site.com/category/Javascript
site.com/category/ActionScript
您的控制器是category
,但方法是无限的。在那里,您可以使用 Colin Williams 在这里调用的 _remap 方法:http:
//codeigniter.com/forums/viewthread/135187/
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);
}
综上所述,如果当前 CI 的路由适合您的项目,请不要使用 _remap() 方法。