在钩子或MY_Controller中扩展_remap函数codeigniter

时间:2018-03-20 08:03:14

标签: hook codeigniter-3 remap

我有一个使用HMVC的codeigniter应用程序,但是对于身份验证,我有一个Controller Auth.php,我把它放在一个基本的Codeigniter控制器文件夹中,而不是在HMVC的模块文件夹中。

我只在模块文件夹中的控制器上使用此重映射功能。在每个模块控制器中都有这个代码。

public function _remap($method) {
    $segment = $this->uri->segment(4);
    switch ($method) {
      case 'view':
        if($segment === 'create') {
          $this->create_view();
        } elseif($segment === 'update') {
          $this->update_view();
        } else {
          $this->search_view();
        }
        break;
      case 'process':
       if($segment === 'create') {
          $this->create_process();
        } elseif($segment === 'update') {
          $this->update_process();
        } else {
          $this->delete_process();
        }
        break;
      default:
        $this->main_view();
        break;
    }
  }

问题是,如何在每个模块控制器中删除此代码?我正在测试使用扩展MX_Controller的MY_Controller来增加代码。正在工作,但在我的Auth.php中,扩展CI_Controller是错误的。我一直在测试使用钩子,但没有运气。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

已经找到了答案!只需把MY_Controller的名字变成别的东西就行了。