Php 如何仅为Codeigniter中的特定方法禁用构造函数?
我在这个用户控制器中有30多个方法。我不想只为这个方法创建另一个控制器Php 如何仅为Codeigniter中的特定方法禁用构造函数?,php,codeigniter,constructor,Php,Codeigniter,Constructor,我在这个用户控制器中有30多个方法。我不想只为这个方法创建另一个控制器 class User extends CI_Controller { public function __construct() { parent::__construct(); if(empty($_SESSION['userid'])){ $error['error'][] = "Please LogIn"; echo js
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\u public\u pages方法时运行构造函数。我该怎么做?试试这个
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;
}
}
}
使用codeigniter会话而不是$\u会话['userid']谢谢,但这不是问题所在!:)您可以尝试vinod的答案,但构造函数将始终初始化,否则您可以尝试在
预控器钩子中移动代码并进行检查,但这样做太过分了。我只想禁用此get\u public\u pages方法的部分。我没有使用codeigniter会话!很好的解决方案,对我很有效。