在CodeIgniter中是否可能有全局类变量?
我正在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', $
类成员扩展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_模型,您将得到一个无限循环!