【问题标题】:private member attribute is not working CI私有成员属性不起作用 CI
【发布时间】:2013-04-30 04:30:53
【问题描述】:

这是我的模型类

class Sessions_model extends CI_Model
{
    private $permission = array()
    public function __construct()
    {
        parent::__construct();
    }

    public function is_login()
    {
        if($this->session->userdata('logged_in')) return TRUE;
        else return false;
    }
    public function login($username,$password)
    {
        $this->db->where('username',$username);
        $this->db->where('password',$password);
        $query = $this->db->get('users');
        if($query->num_rows()==1){
            $user = $query->row();
            $this->set_authnication($user->id);
            return TRUE;
        }
    }
    public function logout()
    {
        $this->session->sess_destroy();
    }

    public function set_authnication($user_id)
    {
        $this->load->helper('date');
        $query = $this->db->where('id',$user_id)->get('users');
        $user = $query->row();
        $auth_data = array(
            'user_id' => $user_id,
            'logged_in' => 1,
            'name' => $user->name,
            'username'=> $user->username,
            'email' => $user->email,
            'role' => $this->initRole($user_id),
            'lastVisitDate'=> now()
        );
        $this->session->set_userdata($auth_data);
    }
    public function initRole($id)
    {
        $role_perm = array();
        $role = $this->db->where('id',$id)->get('roles')->row();        
        return $role_perm= array(
            $role->description => $this->getPerm($role->id)
        );

    }
    public function getPerm($id)
    {       
        $perms = $this->db->where('role_id',$id)->get('permissions')->result();
        foreach ($perms as $perm) {
            $this->permissions[$perm->permission] = true;
        }
        return $this->permissions;  
    }
    public function hasPermTo()
    {
        // $this->getPerm('1');
        // return (isset($permissions[$perm]))? 'true' : 'false';
        // print_r($this->session->userdata('role'));
        print_r($this->permissions);
    }

}

当我设置登录用户名和密码并调用 set_authication($user_id)。当此登录方法完成时,我获得了具有权限的角色。我将我的私有属性设置为具有关联权限..到目前为止一切都还好 当经过身份验证的用户来时,我的问题是我尝试验证该用户是否有权访问该类,因此我调用函数 $this->sessions_model->hasPermTo(); 但是这次我的私有属性是空数组()..它有第n个...... 我不知道是什么问题?

【问题讨论】:

    标签: codeigniter class attributes private


    【解决方案1】:

    您的私有变量是 permission,但您的设置是 permissions(注意末尾的 S)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多