gpt4 book ai didi

php - 如何加载 codeigniter-base-model 中的所有行?休息API

转载 作者:行者123 更新时间:2023-11-29 19:25:20 25 4
gpt4 key购买 nike

我正在尝试通过 Postman 加载 REST API 的所有行。

我正在使用 codeigniter-base-model MY_Model.php。

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

这是我的代码目前在 Controller /模型中的样子:

Controller (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 很陌生,非常感谢您的帮助。

非常感谢!!

最佳答案

对 Controller 功能进行一些更改,如下所示 -

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 获取数据,否则返回所有数据,如下所示 -

// $id variable is optional here
function get_by( $id = '' ) {

if ( $id == '' ) {
$news = $this->db->get( 'news' );
}
else {
$news = $this->db->get_where( 'news', array( 'id' => $id ) );
}

// return data to controller
return $news->result();

}

因此,如果您在 API 中输入 id,则数据将基于该 id,否则将返回所有数据。

关于php - 如何加载 codeigniter-base-model 中的所有行?休息API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42189927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com