0

我的模型中发生了以下情况:

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 错误

严重性:通知

消息:试图获取非对象的属性

文件名:控制器/profile.php

行号:60

这是肯定的,因为访问错误。如何根据上述内容访问详细信息?

4

4 回答 4

3

假设您有profilepic内部 userdetails 并看到您试图获取非对象属性的错误,这意味着

 <? echo $userdetails['profilepic']; ?>

应该

 <? echo $userdetails->profilepic; ?>

因为您将结果作为对象而不是数组

return $query->result();

或者你把它改成

return $query->result_array();
于 2013-04-12T09:57:21.793 回答
1

$query->result();产生一个对象; $query->result_array();给你一个数组

两者都可以,取决于您的需求

于 2013-04-12T09:58:35.727 回答
0

- 控制器中不需要 foreach 循环,因为

$result = $this->profileModel->user_profile($username);
             foreach($result as &$value)
              {
                  $profile['userdetails'] = $value;
              }

- 试试这个。

$profile['userdetails'] = $this->profileModel->user_profile($username);

- 要在视图中访问,请将其用作

echo $userdetails->profilepic;
于 2015-08-01T10:28:18.053 回答
-1

只需在您的查看页面上试试这个

<? echo $profilepic; ?>
于 2013-04-13T07:56:00.853 回答