제목 | 쿼리 결과가 전부 string으로.. | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 마카바 | 작성시각 | 2017/01/25 21:28:12 |
|
|||
restful 라이브러리를 쓰고 있는데 (https://github.com/chriskacerguis/codeigniter-restserver) 디비에서 integer인 속성도 스트링으로 묶여서 나오는데요 예를 들면 {"version": "3"} 이렇게요.. 제가 하고 싶은건 {"version": 3} 이렇게 응답을 주고 싶은데 해당 라이브러리 이슈에서 논의되고 있는 것을 찾아서 소스를 보니까 결국은 json_encode 할때 string으로 다 바뀌는 것 같아요 인코딩 시 NUMERIC_CHECK 옵션을 주면 전화번호 같은 숫자에서 0이 사라져버려서 위험하기 때문에 넣지 않았다는데 그러면 제가 원하는 형태의 응답을 주려면 어떤 방법이 있나요? 다른 분들은 어떻게 해결하시는지 궁금합니다.
|
|||
다음글 | controller에서 사용할 수 없는 키워드들이 무엇... (5) | ||
이전글 | 코드이그나이터 로그인 세션 (4) | ||
변종원(웅파)
/
2017/01/26 12:41:36 /
추천
0
|
마카바
/
2017/01/26 16:29:18 /
추천
0
//모델에서 함수{ return $this->db->select("*")->from("some_table")->get()->result(); } //컨트롤러에서 $response = $this->model_m->함수(); echo json_encode($response); //결과 [{"version": "13"}, {"version":"15"}] 이렇게 나옵니다 ㅠ 쿼리 빌더에서부터 그렇게 되나보네요 좋은 방법이 없을까요?
|
변종원(웅파)
/
2017/01/26 19:30:54 /
추천
0
마카바/ 버전 항목은 int인가요?
|
마카바
/
2017/02/02 23:50:21 /
추천
0
네 디비는 int로 되어있습니다 원래 쿼리 빌더가 이런가요? |
한대승(불의회상)
/
2017/02/03 07:26:44 /
추천
0
DTO에 해당하는 커스텀 클래스를 정의하시면 해결 가능합니다. 아래 메뉴얼 부분 참고하셔서 원하는 데이터형으로 변환 하시는 작업을 진행하세요. http://www.ciboard.co.kr/user_guide/kr/database/results.html#custom-result-objects |
http://php.net/manual/kr/function.json-encode.php
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
위 예제의 출력: