您好我已经编写了代码,以便通过特定ID从特定城市的表中获取数据,但每当我在邮递员中使用get方法时,即使在url提到的id中也使用get变量检索所有数据而不是基于id的特定城市数据。那么如何只得到它所提到的数据。
在我的控制器代码下面
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require_once APPPATH . '/libraries/REST_Controller.php';
class Cities extends REST_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('cities_model');
}
public function index_get()
{
$id = $this->get('id');
$cities = $this->cities_model->get($id);
if (!is_null($cities)) {
$this->response(array('response' => $cities), 200);
} else {
$this->response(array('error' => 'No hay ciudades en la base de datos...'), 404);
}
}
?>
下面的代码是用模型
写的<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Cities_model extends CI_Model
{
public function __construct()
{
parent::__construct();
}
public function get($id)
{
if (!is_null($id)) {
$query = $this->db->select('*')->from('cities')->where('id', $id)->get();
if ($query->num_rows() === 1) {
return $query->row_array();
}
return null;
}
$query = $this->db->select('*')->from('cities')->get();
if ($query->num_rows() > 0) {
return $query->result_array();
}
return null;
}
?>
我在邮差中使用的网址是这样的
按规则1
http://localhost:81/weatherapi/index.php/Cities/index?=1
按规则2
http://localhost:81/weatherapi/index.php/Cities/index/1
获得这样的输出
答案 0 :(得分:0)
当您通过$ id = $ this-&gt; get(&#39; id&#39;);
从网址获取城市ID时尝试调用以下网址
http://localhost:81/weatherapi/index.php/Cities/index?id=1
否则, $ id 的值将为null并由您的条件 if model(!is_null($ id))处理模型函数
答案 1 :(得分:0)
:
和网址
public function index_get($id)
{
$cities = $this->cities_model->get($id);
if (!is_null($cities)) {
$this->response(array('response' => $cities), 200);
} else {
$this->response(array('error' => 'No hay ciudades en la base de datos...'), 404);
}
}
答案 2 :(得分:0)
希望这会对您有所帮助:
确保您在控制器中获得$id
并将其传递给模型
在模型中使用if else进行查询,如下所示:
public function get($id)
{
if (! empty($id))
{
$query = $this->db->select('*')->from('cities')->where('id', $id)->get();
if ($query->num_rows() > 0)
{
return $query->row_array();
}
}
else
{
$query = $this->db->select('*')->from('cities')->get();
if ($query->num_rows() > 0)
{
return $query->result_array();
}
}
}