Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CodeIgniter中是否可能有全局类变量?_Codeigniter_Variables_Methods - Fatal编程技术网

在CodeIgniter中是否可能有全局类变量?

在CodeIgniter中是否可能有全局类变量?,codeigniter,variables,methods,Codeigniter,Variables,Methods,我正在CodeIgniter中开发一个具有成员登录系统的应用程序。我有一个模型,可以获取所请求成员的所有信息 类成员扩展CI_模型{ var $info = array(); var $error = NULL; function __construct(){ parent::__construct(); } public function get_info($member_id = ''){ $this->db->where('member_id', $

我正在CodeIgniter中开发一个具有成员登录系统的应用程序。我有一个模型,可以获取所请求成员的所有信息


类成员扩展CI_模型{

var $info = array();
var $error = NULL;

function __construct(){

    parent::__construct();

}

public function get_info($member_id = ''){

    $this->db->where('member_id', $member_id);
    $this->db->limit(1);
    $query = $this->db->get('members');

    if($query->num_rows() > 0){

        $member = $query->row_array();

        $info = array(
            'id' => $member['member_id'],
            'display_name' => $member['display_name'],
            'email_address' => $member['email_address'],
            'password' => $member['password'],
            'status' => ($member['status'] == 0) ? FALSE : TRUE,
            'activation_code' => $member['activation_code'],
            'location' => $member['location'],
            'date_joined' => date('M jS, Y', $member['date_joined']),
            'gender' => ($member['gender'] == 0) ? 'Male' : 'Female',
            'results_per_page' => $member['results_per_page'],
            'admin_emails' => ($member['admin_emails'] == 0) ? FALSE : TRUE,
            'member_emails' => ($member['member_emails'] == 0) ? FALSE : TRUE
        );

        $this->info = $info;

    } else {

        $this->error = 'The member you requested could not be found in our database.';

    }

}
var $user = array();

function __construct(){

    parent::__construct();

    $this->load->model('member');
    $this->member->get_info($this->session->userdata('member_id'));
    $this->user = $this->member->info;

}

在我的控制器和其他模型的顶部,我使用以下命令获取当前用户的信息,并将其传递给所有方法


函数_u构造(){

函数索引(){

}


有没有一种方法可以在全局范围内实现这一点?在每个控制器的顶部键入构造代码有点烦人。

在构造中,只需尝试访问会话数据即可

function __construct() {
     if($this->session->userdata('member_id')) {
          echo 'You are logged in';
     } else {
          echo 'You are not logged in';
     }
}

这比获取所有数据并选择“用户id”更简单,如果我们检查会话数据是否存在,那么用户将登录或没有人登录。您可以在每个控制器构造函数中添加此项,您可以在构造中不借助任何DB进行检查,只需尝试访问会话数据即可

function __construct() {
     if($this->session->userdata('member_id')) {
          echo 'You are logged in';
     } else {
          echo 'You are not logged in';
     }
}

这比获取所有数据并选择“用户id”更简单,如果我们检查会话数据是否存在,那么用户将登录或没有人登录。您可以在每个控制器构造函数中添加此项,并且您可以在没有任何DB帮助的情况下进行检查,因此我在StackOverflow上找到了另一篇文章,解决了我的pro问题

在application/core中,我扩展了现有的控制器和模型类,添加了一些内容。然后,我不得不更改控制器和模型以适应需要


类Home扩展了我的_控制器{

var $user = array();

function __construct(){

    parent::__construct();

    $this->load->model('member');
    $this->member->get_info($this->session->userdata('member_id'));
    $this->user = $this->member->info;

}
}

application/core/MY_Model.php

类MY_模型扩展了CI_模型{

var $info = array();
var $error = NULL;

function __construct(){

    parent::__construct();

}

public function get_info($member_id = ''){

    $this->db->where('member_id', $member_id);
    $this->db->limit(1);
    $query = $this->db->get('members');

    if($query->num_rows() > 0){

        $member = $query->row_array();

        $info = array(
            'id' => $member['member_id'],
            'display_name' => $member['display_name'],
            'email_address' => $member['email_address'],
            'password' => $member['password'],
            'status' => ($member['status'] == 0) ? FALSE : TRUE,
            'activation_code' => $member['activation_code'],
            'location' => $member['location'],
            'date_joined' => date('M jS, Y', $member['date_joined']),
            'gender' => ($member['gender'] == 0) ? 'Male' : 'Female',
            'results_per_page' => $member['results_per_page'],
            'admin_emails' => ($member['admin_emails'] == 0) ? FALSE : TRUE,
            'member_emails' => ($member['member_emails'] == 0) ? FALSE : TRUE
        );

        $this->info = $info;

    } else {

        $this->error = 'The member you requested could not be found in our database.';

    }

}
var $user = array();

function __construct(){

    parent::__construct();

    $this->load->model('member');
    $this->member->get_info($this->session->userdata('member_id'));
    $this->user = $this->member->info;

}
}

application/core/MY_Controller.php

类MY_控制器扩展CI_控制器{

var $user = array();

function __construct(){

    parent::__construct();

    $this->load->model('member');
    $this->member->get_info($this->session->userdata('member_id'));
    $this->user = $this->member->info;

}
}

所以我在这里找到了另一篇关于StackOverflow的文章,解决了我的问题

在application/core中,我扩展了现有的控制器和模型类,添加了一些内容。然后,我不得不更改控制器和模型以适应需要


类Home扩展了我的_控制器{

var $user = array();

function __construct(){

    parent::__construct();

    $this->load->model('member');
    $this->member->get_info($this->session->userdata('member_id'));
    $this->user = $this->member->info;

}
}

application/core/MY_Model.php

类MY_模型扩展了CI_模型{

var $info = array();
var $error = NULL;

function __construct(){

    parent::__construct();

}

public function get_info($member_id = ''){

    $this->db->where('member_id', $member_id);
    $this->db->limit(1);
    $query = $this->db->get('members');

    if($query->num_rows() > 0){

        $member = $query->row_array();

        $info = array(
            'id' => $member['member_id'],
            'display_name' => $member['display_name'],
            'email_address' => $member['email_address'],
            'password' => $member['password'],
            'status' => ($member['status'] == 0) ? FALSE : TRUE,
            'activation_code' => $member['activation_code'],
            'location' => $member['location'],
            'date_joined' => date('M jS, Y', $member['date_joined']),
            'gender' => ($member['gender'] == 0) ? 'Male' : 'Female',
            'results_per_page' => $member['results_per_page'],
            'admin_emails' => ($member['admin_emails'] == 0) ? FALSE : TRUE,
            'member_emails' => ($member['member_emails'] == 0) ? FALSE : TRUE
        );

        $this->info = $info;

    } else {

        $this->error = 'The member you requested could not be found in our database.';

    }

}
var $user = array();

function __construct(){

    parent::__construct();

    $this->load->model('member');
    $this->member->get_info($this->session->userdata('member_id'));
    $this->user = $this->member->info;

}
}

application/core/MY_Controller.php

类MY_控制器扩展CI_控制器{

var $user = array();

function __construct(){

    parent::__construct();

    $this->load->model('member');
    $this->member->get_info($this->session->userdata('member_id'));
    $this->user = $this->member->info;

}
}

还请注意,成员模型应该是原始CI_模型类的扩展…如果将其扩展为MY_模型,您将得到一个无限循环!还请注意,成员模型应该是原始CI_模型类的扩展…如果将其扩展为MY_模型,您将得到一个无限循环!