0
Как я могу обработать ответ json-массива от контроллера api codeigniter rest? Могу ли я заставить контроллер получить функцию для чтения двух переменных (один для функции контроллера и один для номера страницы для функции разбиения на страницы на CI), как это?Codeigniter Rest API paginate json array output
public function index_get($kost_name, $page_num){
$real_name = urldecode($kost_name);
$kost_list = $this->model->get_kost_name($real_name,$page_num);
//var_dump($kost_detail);
// echo "before ". (microtime(true) - $start);
// Check if the requested kost was found
if(!$kost_list){
$response_data["code"] = API_V1_NO_DATA_STATUS_CODE;
$response_data["message"] = API_V1_NO_DATA_STATUS_MESSAGE;
$response_data["info"] = "Your requested kost was not found in our system.";
$this->response($response_data, 404);
return 0; // not really needed, but why not?
}else{
$response_data["code"] = API_V1_SUCCESS_STATUS_CODE;
$response_data["message"] = API_V1_SUCCESS_STATUS_MESSAGE;
$response_data["info"] = "Requested kost was found in our system.";
foreach ($kost_list as $key => $kost) {
$response_data['kost_list'][$key]['kost_id'] = $kost['kost_id'];
$response_data['kost_list'][$key]['kost_name'] = $kost['kost_name'];
$response_data['kost_list'][$key]['area_name'] = $kost['area_name'];
$response_data['kost_list'][$key]['kost_address'] = $kost['kost_address'];
$response_data['kost_list'][$key]['kost_lat'] = $kost['kost_lat'];
$response_data['kost_list'][$key]['kost_long'] = $kost['kost_long'];
$response_data['kost_list'][$key]['kost_thumbnail'] =
KOST_IMAGE_DIR . $kost['kost_id'] . "/" . $kost['kost_thumbnail'];
$response_data['kost_list'][$key]['periods']
['daily'] = $kost['daily'] ? true:false ;
$response_data['kost_list'][$key]['periods']
['monthly'] = $kost['monthly'] ? true:false ;
$response_data['kost_list'][$key]['periods']
['trimonthly'] = $kost['trimonthly'] ? true:false ;
$response_data['kost_list'][$key]['periods']
['semester'] = $kost['semester'] ? true:false ;
$response_data['kost_list'][$key]['periods']
['annually'] = $kost['annually'] ? true:false ;
}
$this->response($response_data);
var_dump($response_data);
}
и модель подобна этому?
function get_kost_name($kost_name, $page_num){
$page_num2 = 1+(($page_num-1)*10);
$sql = "SELECT
k.KOST_ID kost_id,
k.KOST_NAME kost_name,
ar.AREA_NAME area_name,
k.KOST_ADDRESS kost_address,
k.LATITUDE kost_lat,
k.LONGITUDE kost_long,
(SELECT ki.IMAGE_URL
FROM
tb_r_kost_image ki
WHERE
ki.KOST_ID = k.KOST_ID
LIMIT 1
) kost_thumbnail,
kr.HAS_DAILY daily,
kr.HAS_MONTHLY monthly,
kr.HAS_TRIMONTHLY trimonthly,
kr.HAS_SEMESTER semester,
kr.HAS_ANNUALLY annually
FROM
tb_r_kost k,
tb_m_area ar,
tb_r_kost_rates kr
WHERE
k.KOST_ID = kr.KOST_ID AND
k.AREA_ID = ar.AREA_ID AND
k.AVAILABLE = 1 AND
k.DELETE_FLAG = 0 AND
k.KOST_NAME LIKE '%$kost_name%'
LIMIT
$page_num2, 10";
return fetchArray($sql, 'all');
}
Если я добавил ограничение на мой запрос sql, мне все еще нужен класс разбиения на страницы из Codeigniter? так как предел, уже выполняющий свою работу, ограничивает выход json-массива? –
вы также не используете переменную $ page_num в pageniation lib. –
отредактированный код вы можете проверить, что-то не так? теперь я удаляю класс pagination класса Codeigniter, вместо этого я просто использую синтаксис SQL Limit для своей модели –