当我访问具有不存在路由的Class时,如何在codeIgniter中设置默认功能?

Mag*_*uly 3 php routing codeigniter

控制器是这样的:

class Abc extends CI_controller{
  public function index(){...}

  public function f1(){...} 
}
Run Code Online (Sandbox Code Playgroud)

如果url是http://host/app/Abc/indexget函数索引
如果url是http://host/app/Abc/f1get函数f1
如果url是http://host/app/Abcget函数索引因为它是默认的
但是如果url是http://host/app/Abc/f2它打印404找不到

我预计如果url是http://host/app/Abc/f2可以转向索引功能.
如果不能这样做,我想自动添加新功能,我该怎么办?

编辑
我想在一个特定的类中使用它,我可以编辑全局路由吗?怎么样?

ume*_*ooq 9

您可以通过两种方式首先编辑routes.php文件并将404_override更改为控制器功能,这会将您的所有404请求重定向到该控制器功能

form
$route['404_override'] = 'welcome';

to
$route['404_override'] = 'ABC/index';
Run Code Online (Sandbox Code Playgroud)

第二个选项在控制器内,您可以使用_remap方法/函数来检查是否存在函数/方法.控制器将是这样的

class Abc extends CI_controller{

  function _remap($method_name = 'index'){

             if(!method_exists($this, $method_name)){
                $this->index();
             }
             else{
                $this->{$method_name}();
             }
         }

  public function index(){...}

  public function f1(){...} 
}
Run Code Online (Sandbox Code Playgroud)