CodeIgniter 使用 If 语句显示不同的菜单



当我尝试获取它说它未定义的值时,变量中出现错误 虽然我已经存储了变量"$level"的会话并将其发送到视图,但变量的条件变得未定义,代码有什么问题吗?

我得到的变量来自登录名。我也尝试打电话给$level,它可以工作

我尝试使用 foreach 和非 foreach 方法,但这些方法都不起作用

查看.php

<?php if($level->level == '1') ?>
<p>Number 1</p>
<?php if($level->level == '2') ?>
<p>Number 2</p>

管理员.php

function index(){       
$level = $this->session->userdata('level');
$this->load->view('view',$level);
}

登录.php

public function do_login()
    {
        $u = $this->input->post("user");
        $p = md5($this->input->post("pass"));
        $cari = $this->model_pesawat->cek_login($u, $p)->row();
        $hitung = $this->model_pesawat->cek_login($u, $p)->num_rows();
        if ($hitung > 0) {
        $data = array('admin_id' => $cari->no_user ,
                            'admin_user' => $cari->username, 
                            'admin_nama' => $cari->nama,
                            'level' => $cari->level,
                            'admin_valid' => TRUE
            );
            $this->session->set_userdata($data);
            redirect('admin','refresh');
        }else{
            echo "maaf username atau password salah";
        }   
    }

我想要结果if语句将根据用户$level在视图中显示不同的值

您需要将数组传递给 CodeIginter 视图。

数组的键将用作视图中的单个元素。

它类似于 extract(( 函数。

因此,您应该传递$data并向其添加$level

$data['level'] = $level;
$this->load->view('view', $data);

在您看来,您可以$level从控制器访问$level

无需照顾$data

视图中可以直接使用会话变量,无需从控制器传递

<p>Number 1</p>
<?php if($this->session->userdata('level') == '2') ?>
<p>Number 2</p>

您应该检查会话中的数据,无论它是否被存储。

    echo "<pre>"; print_r($this->session->userdata());

最新更新