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

控制器是这样的:

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

  public function f1(){...} 
}

如果url是http:// host / app / Abc / index,则获取函数索引
如果url是http:// host / app / Abc / f1,则获取函数f1
如果url是http:// host / app / Abc,则获取函数索引,因为它是默认值
但是如果url是http:// host / app / Abc / f2,则打印404找不到

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

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

解决方法:

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

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

to
$route['404_override'] = 'ABC/index';

第二个选项在控制器内,您可以使用_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(){...} 
}
上一篇:c# – 控制器中自定义方法的WebApi路由


下一篇:RabbitMQ