代码之家  ›  专栏  ›  技术社区  ›  spacemonkey

试图获取未解析的非对象的属性的代码点火

  •  0
  • spacemonkey  · 技术社区  · 11 年前

    我正试图访问视图中模型查询的结果集。我有以下内容:

    控制器:

               $courseId = $this->session->userdata('courseId');
                //echo "Course: ".$courseId;
                if(isset($courseId) && $courseId != '')
                {           
                    $result = $this->Course_model->loadBasicDetailsEdit($courseId);
                    $data['basicCourseDetails'] = $result;
                    $this->load->view('course/basicDetails', $data);
                }
    

    型号:

    function loadBasicDetailsEdit($courseId)
        {
            $this->db->select('*');
            $this->db->where('course_id', $courseId);    
            $this->db->from('course');
            $query = $this->db->get();
            if ( $query->num_rows() > 0 ) 
            { 
              return $query->result(); 
            } else { 
                return FALSE;   
            }   
        }
    

    在视图中,我尝试打印_r(),得到的结果是:

    Array ( [0] => stdClass Object ( [course_id] => 8 [title] => Photography [summary] => [description] => [price] => [member_id] => 12 [category] => [audience] => [goals] => [date] => 2013-09-26 [production] => 0 ) ) 
    

    我尝试使用$basicCourseDetails访问此内容->title或$basicCourseDetails[标题] 但两者都不起作用。关于为什么会发生这种情况,有什么线索吗?

    当做

    3 回复  |  直到 11 年前
        1
  •  1
  •   Alessandro Minoccheri    11 年前

    试试这个:

    foreach($basicCourseDetails as $basic){
        echo($basic->title);
    }
    

    或者类似的东西:

    echo($basicCourseDetails[0]->title);
    
        2
  •  0
  •   The Alpha    11 年前

    这是一个对象数组

    Array ( [0] => stdClass Object ( [course_id] => 8 [title] => Photography [summary] => [description] => [price] => [member_id] => 12 [category] => [audience] => [goals] => [date] => 2013-09-26 [production] => 0 ) ) 
    

    包含一个 stdObject 在数组中,因此,第一个对象是 0 ,如果有更多,那么第二个项目可以有索引 1 等等。要从第一个(这里只有一个)中检索数据 stdobject 你可以使用

    echo $basicCourseDetails[0]->title; // title will be printed
    
        3
  •  0
  •   Sumit Kumar Gupta    6 年前

    您可以通过上面问题中提到的这行代码将数据发送到视图页面。

    $result = $this->Course_model->loadBasicDetailsEdit($courseId);
                    $data['basicCourseDetails'] = $result;
                    $this->load->view('course/basicDetails', $data);
    

    但是,当您访问视图中的这些数据时,您需要在视图页面中使用foreachloop逐个访问所有数据。

    例如,如果您在课程文件夹中有一个类似basic_details.php的视图页面,那么您需要编写这样的代码来访问这些数据。

    foreach ($basicCourseDetails as $key => $value) {
                $name = $value->name;
    }
    

    上面的foreachloop可以写在您想要访问数据的视图页面中。