-2

非オブジェクトのプロパティを取得しようとしている行 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;
}
4

3 に答える 3

3

モデルが単一の行を返す$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
        );
    }
}

お役に立てれば。

于 2013-02-22T05:56:49.537 に答える
2

返す$query->result()と、多次元配列が返されます。結果として単一の行が得られると思います。次のように変更しますreturn $query->row()

于 2013-02-22T05:57:52.577 に答える
0

モデル

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;
   }
}
于 2013-02-22T06:12:12.900 に答える