我有一个应用程序,我使用Codeigniter作为后端,BackboneJS作为前端 所以我安装了Phil Sturgeon的RESTful服务器,这样我就可以将我的后端数据作为API传递给我的前端。
到目前为止,只有当我有一个小LIMIT 0,50
语句时,它才能正常运行
当我删除LIMIT
数据量很高而GET方法截断LIMIT
以上的数据时,我通常必须使用POST方法。
所以我想知道我使用它的方式是正确还是错误
在文档中,我在api
中创建了一个application/controllers/api
文件夹。
所以我的一个API看起来像这样:
<?php
require(APPPATH.'libraries/REST_Controller.php');
class artistchannel extends REST_Controller{
public function artistname_get($artist_id)
{
$this->load->database();
$sql = "SELECT formated_name FROM artists WHERE artist_id = '".$artist_id."'";
$query = $this->db->query($sql);
$data = $query->result();
if($data) {
$this->response($data, 200); //
} else {
$this->response(array('error' => 'Couldn\'t find any artist with that name!'), 404);
}
}
}
?>
这是一种正确的使用方法吗?我觉得有些不对劲。
提前致谢
答案 0 :(得分:0)
我建议您不要使用Phil Sturgeon的RESTful服务器来查看具有更广泛功能的Guzzle。
不是从控制器对数据库进行简单查询,而是使用模型和Active Record:
在Controller
:
public function artistname_get($artist_id)
{
$data = $this->ArtistModel->get($artist_id);
if($data) {
$this->response($data, 200); //
} else {
$this->response(array('error' => 'Couldn\'t find any artist with that name!'), 404);
}
}
然后使用Codeigniter ActiveRecord在ArtistModel
中执行查询。
在ArtistModel
:
public function get($id)
{
return $this->db->get_where('artists', array('artist_id' => $id))->row();
}