您好,我是codeigniter框架的初学者,我很难理解如何从方法返回的数组中检索信息。
在我的索引页面上,我有一个登录表单,当用户插入用户名和密码并单击提交按钮时,他调用控制器的方法login,其任务是从表单中收集用户名和密码,并将数据传递给models方法“login($username,$password)”,然后models方法返回true或false,具体取决于数据库中是否有有效用户,然后控制器的方法要么进一步传递用户,要么从头返回用户。我的问题是我想知道用户的访问级别,我在模型中制作了这个方法
public function users_level($username){
$query = $this->db->get_where('users',array('username' => $username) );
$users_level = $query->result(); // I tried with these too $users_level[] = $query->result();
return $users_level;
}
我想用它返回用户的访问级别,并使用该信息来确定为该特定用户呈现什么视图。
这是控制器的登录方法:
public function login(){
$username = $this->input->post('username');
$password = $this->input->post('password');
$this->load->model('model_user');
$logged_in = $this->model_user->login($username,$password);
if ($logged_in == true){
$result['level'] = $this->model_user->users_level($username);
$this->welcome($result);
}else if ($logged_in == false){
$this->index();
}
}
这是我的欢迎页面。
<?php
echo "<br/><br/> WELCOME <br/><br/>";
//echo "Users level is : " . $user_level['level']; //this is problem
?>
<?php
print_r($user_level);
?>
现在我不知道如何从这个数组中提取信息。
当我这样做的时候
print_r($user_level);
要查看输出是什么,我得到的结果是:
欢迎
Array ( [level] => Array ( [0] => stdClass Object ( [id] => 13 [username] => john_username [password] => 123 [name] => john [surname] => johnson [phone] => 123456 [email] => john@gmail.com [level] => 2 [user_type] => professor [activated] => 1 [is_admin] => 0 [is_professor] => 1 [desk] => [academic_year] => 0 [average_grade] => 0 ) ) )
如果我尝试这样做:
echo "Users level is : " . $user_level['level'];
或:
echo "Users level is : " . $user_level->level;
发生错误:
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: views/view_welcome_page.php
我知道这不是一个对象,但我不知道如何从表中检索列级别的信息?
提前谢谢