2017-11-21 2 views
1

におけるので、私は私のモデルからの応答を取得したいのですが:方法(NUM_ROWSを取得する)非オブジェクトのCI

function get_list_sales_kit(){ 
     $brispot = $this->load->database('brispot',TRUE); 
     $brispot->select('id,title,imgurl,description'); 
     $qrydata = $brispot->get('saleskit'); 
     $brispot->close(); 
     return $qrydata->result(); 
    } 

と、これはそのモデルを呼び出す関数です:

function salesKit2($request){ 
    $result = new stdClass; 
    $user=''; 
    $CI =& get_instance(); 
    $CI->load->library('libs_bearer'); 
    $CI->load->library('libs_brispot'); 
    $CI->load->model('service_model'); 
     $datapost = json_decode($request); 
     if(isset($datapost->user)){ 
      $user = substr('00000000'.$CI->security->xss_clean(trim($datapost->user)),-8); 
      if($CI->libs_bearer->cekToken($user)==true){ 
       $getdata = $CI->service_model->get_list_sales_kit(); 
       if($getdata->num_rows()>0){ 
        $result->responseCode='00'; 
        $result->responseDesc='Inquiry berhasil.'; 
        $result->responseData=$getdata->result(); 
       } 

} 

しかし、私はfatal erorのようなeror結果を持っています。非オブジェクトのメンバ関数num_rows()を呼び出します。 私はnum_row上で非オブジェクトを呼び出す方法を混乱させましたか、または応答を得るためにnum_rowを置き換える何かがありますか?

+0

あなたは 'if(count($ getdata)> 0){'?あなたもすでに 'return $ qrydata-> result();' '$ result-> responseData = $ getdata-> result();'を呼び出している可能性があります。 –

+0

'if($ qrydata-> num_rows()> 0)は$ qrydata-> result()を返します。返す偽; ' –

+0

これは解決してくれてありがとう –

答えて

0

実際にget_list_sales_kit()関数の結果を返す場合は、行数を取得する唯一の方法はcount($getdata)です(ローレンス氏はコメントにこう述べています)。

ことが言われていると、私は時々そうのようなデータベースオブジェクト自体を返す次のような

function get_list_sales_kit(){ 
     $brispot = $this->load->database('brispot',TRUE); 
     $brispot->select('id,title,imgurl,description'); 
     $qrydata = $brispot->get('saleskit'); 
     $brispot->close(); 
     return $qrydata; // this line changed 
    } 

そうにrow()result()num_rows()のように、その上に任意のCIのデータベース機能を実行することができます。 2番目のコードスニペットで何らかの理由で既にresult()オブジェクトにアクセスしている場合は、最初の関数で戻しても何も変更する必要はありません。

注:close()が事実の後に呼び出されるオブジェクトに影響するかどうかはわかりません。なぜあなたは1つのことをした後にデータベースを閉じるのですか?

+0

あなたのことは本当だと思います 私の欠陥は結果を2回通してデータを取得します –

関連する問題