您好我是codeigniter框架的初学者,我无法理解如何从方法返回的数组中检索信息。
在我的索引页面上我有登录表单,当用户插入用户名和密码并点击提交按钮时,他调用控制器的方法登录,其任务是从表单中收集用户名和密码并将数据传递给模型方法"登录($ 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
我知道这不是一个对象,但我不知道如何从我的表中的列级检索信息? 提前谢谢
答案 0 :(得分:0)
如果你想要数组(单行),那么编辑这样的模型:
using System;
表示多行:
$users_level = $query->row_array();
return $users_level;
答案 1 :(得分:0)
edit your code in function as
$users_level = $query->result_array();
then u will get info like
$userlevels = Array ( "level" => Array ( "0" => array ( "id" => '13' ) ) );
echo "Users level is : " . $userlevels['level'][0]['id'];