不同的控制器负载从codeigniter 2改变 - > 3

时间:2017-10-12 10:57:18

标签: php mysql codeigniter

我正在尝试从codeigniter 2转移到codeigniter 3。 通常在我们控制器的大部分功能中,我们有时会调用其他控制器,

 $this->load->controller('login');
 return $this->login->index();

但是在codeigniter 3崩溃的时候,我检查了这个堆栈溢出问题中路由的工作原理。

How to load a controller from another controller in codeigniter?

但是上面的url对我不起作用,因为更改路由将取消我使用mysql的所有数据库trasactions被取消。

有没有一个很好的解决方案来加载不同的控制器,我想把它移动到一个库并调用它,但我认为有一个更好的方法。此外,HMVC可能是一个解决方案,但它仍然无法解决问题,只是为了一个简单的目的。

2 个答案:

答案 0 :(得分:0)

根据您提供的链接,您不能这样做 - 我不知道CI3中$this->load->controller的能力。

更好的选择是创建一个MY_Controller并从中扩展控制器,然后将共享控制器功能放在其中。

答案 1 :(得分:0)

我认为您正在寻找HMVC解决方案。 Check This Out

更新: 通过实施HMVC,您可以将任何控制器作为模块加载,如下所示

function abc(){
  $this->load->module("my_auth");
  $this->my_auth->check_login();
}