当我尝试获取表示未定义的值时,该变量存在错误虽然我已经存储了变量“ $ level”的会话并将其发送到视图,但是变量的条件变为未定义,代码有什么问题吗?
我得到的变量来自登录名。我也曾尝试调用$ level,它可以工作
我尝试使用foreach和non foreach方法,但这些方法都不起作用
View.php
<?php if($level->level == '1') ?>
<p>Number 1</p>
<?php if($level->level == '2') ?>
<p>Number 2</p>
admin.php
function index(){
$level = $this->session->userdata('level');
$this->load->view('view',$level);
}
Login.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在视图中显示不同的值
答案 0 :(得分:0)
您需要将数组传递给CodeIginter视图。
并且数组的键将用作视图中的单个元素。
类似于extract()函数。
因此,您应该传递$data
并将$level
添加到其中。
$data['level'] = $level;
$this->load->view('view', $data);
在您看来,您可以像$level
一样从Controller访问$level
。
无需照顾$data
答案 1 :(得分:0)
在视图中,您可以直接使用会话变量,无需从控制器传递
<p>Number 1</p>
<?php if($this->session->userdata('level') == '2') ?>
<p>Number 2</p>
答案 2 :(得分:0)
您应该检查会话中的数据,无论是否要存储。
echo "<pre>"; print_r($this->session->userdata());