codeigniter如何调用驻留在另一个控制器中的函数

use*_*862 0 php codeigniter

一个愚蠢的问题,我想从我的admin_news控制器函数调用,该函数驻留在另一个控制器Admin中.功能名称为is_logged_in(); admin.php

public function is_logged_in()
{
   ....
}


admin_news.php
public function __contruct()
{
   parent::__construct();
   //admin->is_logged_in();??
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢

com*_*857 6

您必须在其他地方移动该功能,Codeigniter的架构不允许在一个请求中使用多个控制器实例.您有多个选项,例如使用公共基类,库,帮助程序等.

我建议你创建自己的MY_Controller基类(参见扩展核心类)并将你的方法放在那里,如下所示:

class MY_Controller extends CI_Controller {
    protected function is_logged_in() {
        // ...
    }  
}
Run Code Online (Sandbox Code Playgroud)

一旦你有它,你可以称之为:

class AdminNews extends MY_Controller {
    public function __construct() {
        parent::__construct();
        $this->is_logged_in();
    }
}
Run Code Online (Sandbox Code Playgroud)