Php CodeIgniter-如何将阵列从控制器转移到模型和控制器

Php CodeIgniter-如何将阵列从控制器转移到模型和控制器,php,mysql,codeigniter,Php,Mysql,Codeigniter,我学习CodeIgniter已经5天了。现在我想写一个简单的权限函数 我的控制器: function index(){ $userID=$this->session->userdata('userID'); $data['user_data']=$this->user->get_user_data($userID); $user_type=$user_data['user_type']; if($user_type <=10){

我学习CodeIgniter已经5天了。现在我想写一个简单的权限函数

我的控制器:

function index(){
    $userID=$this->session->userdata('userID');
    $data['user_data']=$this->user->get_user_data($userID);
    $user_type=$user_data['user_type'];
    if($user_type <=10){
        redirect(base_url().'users/login');
    } else {
         //POBIERANIE DANYCH UŻYTKOWNIKA DO TABLICY $user_data
        $this->load->view('header');
        $this->load->view('topMenu',$data);
        $this->load->view('sideBar');
        $this->load->view('dashboard',$data);
        $this->load->view('footer');
    }
}
在视图中,我可以使用,但当我在控制器中使用$user_data['user_type']时,出现以下错误:

严重性:通知

消息:未定义变量:用户类型

文件名:controllers/dashboard.php

请帮帮我。我想从MySQL获取用户类型,并与值进行比较,以授予或拒绝访问同一页面


注意。

问题在于控制器。假设在分配$data['user\u data']=$this->user->get\u user\u data$userID时,它会神奇地变成控制器中的一个变量。事实并非如此。在您的控制器中,您几乎将事情当作普通的旧的前硬脑膜php。这意味着,如果您分配$data['whater']=whater,那么您所做的就是将$data作为一个包含数组的变量。因此,如果要从$data检索任何信息,则需要指定数组键

所以最后,为了解决你的问题。我想改变这一点:

function index(){
    $userID = this->session->userdata('userID');
    $data['user_data'] = $this->user->get_user_data($userID);
    $user_type = $user_data['user_type'];
    ...
}
为此:

function index(){
    $userID = this->session->userdata('userID');
    $data['user_data'] = $this->user->get_user_data($userID);
    $user_type = $data['user_data']['user_type'];
    ...
}

将控制器更改为底部的此代码。此错误是因为未向视图发送变量

    function index(){
    $userID=$this->session->userdata('userID');
    $user_data =    $this->user->get_user_data($userID);
    $data['user_data']['user_id']= $userID;
    $data['user_data']['user_type']=$user_data['user_type'];
    if($user_type <=10){
        redirect(base_url().'users/login');
    } else {
        $this->load->view('header');
        $this->load->view('topMenu',$data);
        $this->load->view('sideBar');
        $this->load->view('dashboard',$data);
        $this->load->view('footer');
    }
}

我希望它能起作用。

尝试使用$user\u type=$data['user\u data']['user\u type'];谢谢。它起作用了!CodeIgniter是最好的。
    function index(){
    $userID=$this->session->userdata('userID');
    $user_data =    $this->user->get_user_data($userID);
    $data['user_data']['user_id']= $userID;
    $data['user_data']['user_type']=$user_data['user_type'];
    if($user_type <=10){
        redirect(base_url().'users/login');
    } else {
        $this->load->view('header');
        $this->load->view('topMenu',$data);
        $this->load->view('sideBar');
        $this->load->view('dashboard',$data);
        $this->load->view('footer');
    }
}
function get_user_data($userID){
    $this->db->select()->from('users')->where('userID',$userID);
    $query=$this->db->get()->row_array();
    return $query;
}