如何在Codeigniter中仅为特定方法禁用构造函数?

时间:2015-01-28 10:54:46

标签: php codeigniter constructor

我在这个用户控制器中有30多种方法。我不想仅为这种方法创建另一个控制器。

class User extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        if(empty($_SESSION['userid'])){
            $error['error'][] = "Please LogIn";
            echo json_encode($error);
            exit;
        }
    }


    public function index(){
    }

    public function get_public_pages(){

    }


}

我不希望在访问get_public_pages方法时运行构造函数。我该怎么办?

1 个答案:

答案 0 :(得分:4)

试试这个,

public function __construct(){
  parent::__construct();
  $method = $this->router->fetch_method();  

  if(empty($method ) && $method != 'get_public_pages'){
    if(empty($_SESSION['userid'])){
        $error['error'][] = "Please LogIn";
        echo json_encode($error);
        exit;
    }
 }  
}