2017-02-12 10 views
0

私はREST APIのすべての行をPostman経由でロードしようとしています。codeigniter-base-modelのすべての行をロードするには? REST API

私はcodeigniter-base-model MY_Model.phpを使用しています。

https://github.com/jamierumbelow/codeigniter-base-model

これは私のコードは、現在、私のコントローラ/モデルの両方でどのように見えるかです:

コントローラ(api_news.php)

class Api_News extends REST_Controller { 

function __construct() 
{ 
    parent::__construct(); 
} 

function index_get() 
{ 
    $id = $this->uri->segment(3); 
    $this->load->model('News_model'); 
    $news = $this->News_model->get_by(array('id' => $id)); 

    if(isset($news['id'])) { 
     $this->response(array(
      'message' => 'success', 
      'status' => 'true', 
      'data' => $news)); 
    } else { 
     $this->response(array(
      'message' => 'unsuccess', 
      'status' => 'false')); 
    } 
} 
} 

モデル(news_model.php )

class News_model extends MY_Model{ 

protected $_table = 'news'; 
protected $primary_key = 'id'; 
protected $return_type = 'array'; 

} 
現時点では

私がアクセスした場合:

はlocalhost/my_api/api_news/ID/1、2、3、等...

私はその個々のIDですべてのレコードにアクセスすることができ、それが示していますそれは素晴らしいです。

はlocalhost/my_api/api_news/ID/

をし、一度に示すすべての行を持っている:

は、私もこれを行うことによって、すべての行を見ることができるようにしたいです。

しかし、私はこれを行う方法がわかりません...と私は試してみれば失敗/偽を取得しています。

どうすればいいですか?私は一般的にPHPには新しく、何か助けていただければ幸いです。

ありがとうございます!

+0

これらの試行を表示したいのですが、失敗した理由を教えてください。 –

答えて

0

次のようにあなたのコントローラー機能のいくつかの変更を行い -

function index_get(){ 
    $id = $this->uri->segment(3); 
    $this->load->model('News_model'); 

    // pass $id to model 
    $news = $this->News_model->get_by($id); 

    if(!empty($news)) { 
     $this->response(array(
      'message' => 'success', 
      'status' => 'true', 
      'data' => $news)); 
    } else { 
     $this->response(array(
      'message' => 'unsuccess', 
      'status' => 'false')); 
    } 

}

し、モデルのidパラメータをオプションにした後、IDはIDに基づいて、取得データを渡された場合、それ以外のすべてを返すことを確認してください

APIにidを入力すると、そのIDに基づいてデータが生成されます。それ以外の場合はすべてのデータが返されます。

+0

ありがとう、それは私がそれをしたい方法で動作しています。 –

+0

それはあなたのために働いてうれしいです。他のユーザーがこのソリューションが動作することを知るように、この回答を親切に受け入れてください。 –

関連する問題