【问题标题】:Displaying error: Trying to get property of non-object [closed]显示错误:试图获取非对象的属性 [关闭]
【发布时间】:2013-02-22 05:51:42
【问题描述】:

代码在第 8、9、10、11 行的控制器中显示错误,试图获取非对象的属性。
//检查所有列名和表名。

我的模型是

public function getEducationDetail($educationID) {
    $this->db->select('qual_id,pass_year,institute,percentage,emp_id');
    $this->db->from('emp_edu');
    $this->db->where('edu_id', $educationID);
    $this->db->where('del_flag', 0);
    $query = $this->db->get();
    if ($query->num_rows() > 0):
        return $query->result();
    else:
        return 0;
    endif;
}

我的控制器是

 public function getEducationDetail() {

    $this->load->model('mod_admin');
    if (isset($_GET['param'])):
        $educationID = $this->input->get('param');
        $result = $this->mod_admin->getEducationDetail($educationID);
        $jsonArr = array(
            'qualificationID' => $result->qual_id,
            'passOut' => $result->pass_out,
            'institute' => $result->institute,
            'percentage' => $result->percentage
        );
    endif;
    $json = json_encode(array('result' => $jsonArr));
    echo $json;
}

【问题讨论】:

    标签: php json codeigniter


    【解决方案1】:

    如果您的模型返回单行 $query->row() 那么

    $result = $this->mod_admin->getEducationDetail($educationID);
    if (!empty($result)) {
        $jsonArr = array(
            'qualificationID' => $result->qual_id,
            'passOut' => $result->pass_out,
            'institute' => $result->institute,
            'percentage' => $result->percentage
        );
    }
    

    如果返回多行$query->result()

    $results = $this->mod_admin->getEducationDetail($educationID);
    
    $jsonArr = array();
    
    if (!empty($results)) {
        foreach ($results as $result) {
            $jsonArr[] = array(
                'qualificationID' => $result->qual_id,
                'passOut' => $result->pass_out,
                'institute' => $result->institute,
                'percentage' => $result->percentage
            );
        }
    }
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      return $query->result() 它将给出多维数组。我想你会得到一个结果。 改成return $query->row()

      【讨论】:

        【解决方案3】:

        型号

        public function getEducationDetail($educationID) {
            $this->db->select('qual_id,pass_year,institute,percentage,emp_id');
            $this->db->where('edu_id', $educationID);
            $this->db->where('del_flag', 0);
            $query = $this->db->get('emp_edu');
        
               return $query->row();
        
        }
        

        控制器

        public function getEducationDetail() {
        
        $this->load->model('mod_admin');
        if (isset($_GET['param'])):
            $educationID = $this->input->get('param');
            $result = $this->mod_admin->getEducationDetail($educationID);
        if($result){
            $jsonArr = array(
                'qualificationID' => $result->qual_id,
                'passOut' => $result->pass_out,
                'institute' => $result->institute,
                'percentage' => $result->percentage
            );
        $json = json_encode(array('result' => $jsonArr));
        echo $json;
        endif;
           }
        }
        

        【讨论】:

          猜你喜欢
          • 2018-05-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-08
          • 2016-06-13
          • 2018-06-02
          相关资源
          最近更新 更多