我的模型中发生了以下情况:
public function load_user_menu($username)
{
$this->db->select('*');
$this->db->from('menu');
$this->db->where('username', $username);
$query = $this->db->get();
return $query->result();
}
以及我的控制器中的以下内容:
public function index()
{
/*If user previously logged in and not logged out, username remains in session.
load username and load profile data.
*/
//check if user logged in or not
if(($this->session->userdata('username')!=""))
{
//load data from model
$profile = array();
$username = $this->session->userdata('username');
$result = $this->profileModel->user_profile($username);
foreach($result as &$value)
{
$profile['userdetails'] = $value;
}
$this->load->view('profile', $profile);
}else{
//redirect to login function
$this->login();
}
}
但我在个人资料视图中遇到错误。我确信我访问它们是错误的,因为我在视图中这样做:
<? echo $userdetails['profilepic']; ?>
并且没有显示但是此错误:
遇到PHP错误
严重性:注意
消息:尝试获取非对象的属性
文件名:controllers / profile.php
行号:60
这是肯定的,因为访问错误。如何根据上述内容访问详细信息?
答案 0 :(得分:3)
假设你在用户详细信息中有profilepic
并且看到你试图获得非对象属性的错误,这意味着
<? echo $userdetails['profilepic']; ?>
应该是
<? echo $userdetails->profilepic; ?>
因为你把结果作为对象而不是数组
return $query->result();
或者您将其更改为
return $query->result_array();
答案 1 :(得分:1)
$query->result();
生成一个对象; $query->result_array();
为您提供了一个数组
要么很好,要么根据你的需要
答案 2 :(得分:0)
只需在您的视图页面上尝试此操作
<? echo $profilepic; ?>
答案 3 :(得分:0)
- 您的控制器中不需要foreach循环
$result = $this->profileModel->user_profile($username);
foreach($result as &$value)
{
$profile['userdetails'] = $value;
}
- 试试这个。
$profile['userdetails'] = $this->profileModel->user_profile($username);
- 在View中进行访问,将其用作
echo $userdetails->profilepic;