CI 묻고 답하기

제목 컨트롤러 안에 폴더 넣고 사용할 때 라우팅 문제
카테고리 CI 2, 3
글쓴이 마카바 작성시각 2017/01/10 11:16:53
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 20769   RSS

안녕하세요 

라우터를 어떻게 활용해야 할지 몰라 질문 남깁니다.

제가 설계한 것은 아니고 이미 이렇게 되어있는데..

컨트롤러 안에 v2라는 이름의 폴더가 있어서 

controller/폴더/컨트롤러파일

controller/v2/Post.php

controller/v2/Comment.php

이런식으로 되어있습니다.

 

제가 하고 싶은것은 

v2/post/:id

이런 것을 하고 싶은데 

폴더 아래 컨트롤러가 있어서 그런지

router에서 여러가지 시도를 해봐도 안되네요 

가령 이런것들이요..

$route['v2/post/(:num)'] = 'v2/post/$1';

이렇게 하면 page not found가 뜨네요.

하위 폴더가 저런 식으로 있을 때

rest 스러운 주소를 쓸 수 있는 해결 방법이 있을까요??

 

 다음글 공통적으로 사용하는 함수의 경우 하나의 모델에 모아서 ... (3)
 이전글 웹뷰에서 CI 세션 질문드려요 (2)

댓글

변종원(웅파) / 2017/01/10 11:31:24 / 추천 0

$route['v2/post/(:num)'] = 'v2/api1/$1';

post는 uri segment에서 가져올 수 있습니다.

마카바 / 2017/01/10 11:41:31 / 추천 0

제가 오해하게 쓴 것 같아서 다시 수정했습니다. 

$route['v2/post/(:num)'] = 'v2/post/$1';

이렇게 사용하면 

v2/post/123 으로 접근했을 때 page not found가 뜹니다ㅠ

마카바 / 2017/01/10 11:51:12 / 추천 0

일단은 이렇게 해결해보려 하는데

옳은 방법인지는 모르겠습니다 

적어도 외부에서 호출하는 api 모양은 의도한대로 할 수 있겠습니다.

$route['v2/post/(:num)'] = 'v2/post/one/$1';

/*post 컨트롤러 안에 one 함수에서 처리*/

 

한대승(불의회상) / 2017/01/10 12:34:41 / 추천 1

@마카바 마지막에 사용하신 방법이 맞는것 같은데요 ^^

_remap 을 사용하면 굳이 라우터를 사용하지 않아도 처리 가능 합니다.

http://www.ciboard.co.kr/user_guide/kr/general/controllers.html#remapping-method-calls

마카바 / 2017/01/10 13:23:30 / 추천 0
모두 감사합니다 ^^