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

标签 php codeigniter constructor

我在这个用户 Controller 中有超过 30 个方法。我不想只为这个单一方法创建另一个 Controller 。

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方法时不想运行构造函数,怎么办?

最佳答案

试试这个,

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;
    }
 }  
}

关于php - 如何在 Codeigniter 中仅禁用特定方法的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28190432/

相关文章:

php - codeigniter 返回 "Message: Undefined property: Welcome::$load"尝试加载帮助程序库

c# - : this() As a constructor

c# - 实例化:将列表移动到参数中

javascript - 为什么我无法使用 Jquery 插件中的 FormData 从 tinymce 编辑器获取 textarea 的值?

php - 增加 php current Date() 的天数

php - 使用 Laravel 4.1 对 UNION 查询进行排序

php - 学说迁移 : default value for not nullable fk

php - 无法选择数据库时 Codeigniter 重定向到自定义 View

C# 将双数组传递给构造函数重载方法

php - 什么会导致 print_r 和/或 var_dump 无法调试变量?