만들면서 배우는 CodeIgniter Q&A

제목 segment(7) 값을 엉뚱한 곳에 가져옵니다.
글쓴이 비오는날 작성시각 2014/02/28 17:06:15
댓글 : 4 추천 : 0 스크랩 : 1 조회수 : 10684   RSS
안녕하세요.

일주일만에 책을 보고 하다가 일주일만에 올려봅니다.

4.3  보기 기능 추가하기 의 뷰페이지 목록 버튼 소스입니다.

/bbs/board/lists/<?php echo $this->uri->segment(3);?>/page/<?php echo $this->uri->segment(7);?>" class="btn btn-primary">목록</a>
목록 버튼의 링크 값 중 segment (7)이 말썽입니다.

보기 페이지에서 목록버튼을 눌러보니

게시판 목록 페이지의 맨 첫 페이지로 이동합니다.

이상하다 싶어 segment (7)의 값을 거꾸로 바꾸어 확인해 보니

/board/lists/로 시작하는 주소에서 값을 가져오는 것이 아니라

/board/view/로 시작하는 주소에서 값을 가져오고 있는 것입니다.

모가 잘못 될걸까요?  

다시 한번 읽어보고 또 다시 한번 읽어보아도 모르겠습니다.

도와주세요.


아직 4.3 뒤로는 가지 않았습니다.

 다음글 게시판 예제 리스트출력이 제대로 안됩니다. (1)
 이전글 4장에 게시판 접속중 다음과 같은 에러 (1)

댓글

변종원(웅파) / 2014/02/28 18:05:52 / 추천 0
책의 보기 기능 주소가 어떻게 되는지 확인해보세요.

index.php를 없앤 상태기 때문에 도메인 다음부터 1번 세그먼트가 됩니다.

비오는날님이 입력한 주소를 보시고 7번째 세그먼트가 있는지 확인하세요.
없으면 주소를 잘못 입력하신 거구요.

앞단 리스트에서 뷰로 이동하는 주소를 보세요. ^^


view로 시작하는 주소에서 가져오는게 맞습니다. 
뷰의 주소는 앞단 리스트에서 만들어지죠. 뷰에 필요한 인자들을 가지고 list_v.php에서 뷰의 주소를 만들어냅니다.
비오는날 / 2014/02/28 18:36:19 / 추천 0
 아 찾은 것 같네요.

웅파님 한번  봐주세요.

컨트롤에   $page = $this->uri->segment($uri_segment, 1); 를

$data['page'] = $page = $this->uri->segment($uri_segment, 1);로 변경하고

list_v 뷰파일에서 목록 링크 소스에 <?php echo $page;?> 소스를 추가해야  

view_v 뷰파일에서 목록 버튼이 정상적으로 동작되는 거 아닌가요?
변종원(웅파) / 2014/02/28 18:55:09 / 추천 0
리스트의 뷰로 이동하는 링크 부분이 다음과 같이 수정되어야 합니다.


<a rel="external" href="/bbs/<?php echo $this->uri->segment(1);?>/view/<?php echo $this->uri->segment(3);?>/board_id/<?php echo $lt->board_id;?>/page/<?php echo $page;?>"><?php echo $lt->subject;?></a>


목록 주소는 리스트에서 뷰를 거쳐서 다시 목록으로 이동을 합니다.

말씀하신 대로 컨트롤러에서 처리되어서 $page값을 넘겨줘야 하구요.

최종 전체 소스엔 적용이 되어 있는데 중간부분에서 빠진 것 같습니다.
비오는날 / 2014/02/28 18:58:07 / 추천 0
 전체 소스를 카피해 사용하지 않기를 잘했다는 생각이 드네요. 수고하세요.