CI 묻고 답하기

제목 세그먼트 값을 가져오는 방법에 관한 질문드려요
글쓴이 jackbell 작성시각 2010/04/23 17:20:27
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 27022   RSS
현재 주소체계는

http://test.co.kr/study/hanja/grade/8 //한자 8급단어에 대한 리스트

http://test.co.kr/study/hanja/page/1 //기본 단어의 1페이지에 대한 리스트

이런식으로 주소를 사용하고있습니다.

$this->uri->uri_to_assoc(3); 이것으로 세그먼트 정보를 가져와서 페이지를 이동하고있는데요

8급단어에 대한 리스트의 3페이지를 본다고햇을때 문제가 생기게됩니다.

그럴경우에 http://test.co.kr/study/hanja/grade/8/page/1

이런식으로 넘겨야 될거라고 저는 생각했는데요 이럴경우에 배열의 숫자가 바뀌게 되어서

$this->uri->uri_to_assoc(3);  이걸 그대로 쓰지못하게 됩니다.

이러한 경우에 가장 쉽고 간결하게 처리하려면 어떤식으로 해야될까요 고민하다가 글 남깁니다.

 다음글 위젯 질문드립니다. (1)
 이전글 페이지네이션 문의드립니다. (2)

댓글

변종원(웅파) / 2010/04/23 22:13:44 / 추천 0

문제가 없는데요? 어떤 것이 문제인지?

$array = $this->uri->uri_to_assoc(3);

한자 8급의 주소에 대한 배열 $arry['grade'] : 8

기본단어 주소에 대한 배열 $arry['page'] : 1

한자 8급의 1 페이지 주소에 대한 배열 $arry['grade'] : 8, $arry['page'] : 1

이렇게 사용이 되는데요. 제가 볼때는 뭔가 착각을 하셨거나 다른 질문을 하시려고 한것이 아닌가 생각이 됩니다.

어차피 주소는 개발자가 어떻게 하겠다라고 규약을 하는 부분이라 첫번째, 두번째는 컨트롤러, 메소드로 쓰겠다라고 정하면 this->uri->uri_to_assoc(3);으로 일관되게 사용하시면 되고

admin/study/hanja 라고 첫번째 세그먼트를 디렉토리를 써야 한다면
user/study/hanja 와 같이 맞춰서 this->uri->uri_to_assoc(3); 를 쓸 수 있습니다.

아니면 운영자 페이지는 admin/study/hanja로 쓰고 사용자 페이지는 study/hanja로 쓴다면

if($ths->uri->segment(1) == 'admin'){
    $array = $this->uri->uri_to_assoc(4);
} else {
   $array = $this->uri->uri_to_assoc(3);
}

이렇게 쓰시면 되겠죠.

좀더 확실하게 구분지어 쓰고 싶다면 http://codeigniter-kr.org/tip/view/426/page/1/ 나
http://codeigniter-kr.org/tip/view/303/page/2/ 를 참고해서 사용해보세요.