제목 | 게시판에서 uri->segment(3)이 정의되지 않습니다. | ||
---|---|---|---|
글쓴이 | yjin | 작성시각 | 2013/08/22 22:53:43 |
|
|||
안녕하세요? 게시판 프로젝트에 막히는 부분이 있어서 예제 소스코드를 다운받아서 돌려봤습니다. 그런데 처음 나오는 리스트 페이지에서 글 목록을 클릭하거나, 페이지를 옮기거나 (페이지네이션), 글쓰기를 눌렀을 때 에러가 발생합니다. 원인을 확인해 본 결과 uri->segment(3)를 불러오지 못해서 url부분이 view//board_id/10/page/1 이런식으로 슬래쉬 사이에 값이 안들어옵니다. 결론적으로 질문드리고 싶은 것은 아래 두가지 입니다. 1. 일단 임시로 uri->segment(3, 'ci_board') 로 입력해두니까 작동은 잘 되던데 왜 테이블 명을 못불러오지 못하는 걸까요? 2. 혹시 코드를 수정해야 한다면, uri 세그먼트의 처음값을 할당하는 코드가 어디에 있는지도 알려주시면 큰 도움이 될 것 같습니다 웅파님 덕분에 열공하고 있습니다 :) 감사합니다. |
|||
다음글 | CHAPTER 4 그림 4-1 (Page 91) (1) | ||
이전글 | 게시판 중 session 관련 문의 (6) | ||
변종원(웅파)
/
2013/08/22 23:21:43 /
추천
0
|
변종원(웅파)
/
2013/08/22 23:22:42 /
추천
0
1번 질문처럼 세그먼트에 두번째 파라미터를 주셔서 ci_board 라는 값이 나왔다면
주소에 세번째 세그먼트가 없는겁니다. 주소를 잘못 치신거 같아요. |
yjin
/
2013/08/23 01:05:35 /
추천
0
빠른 답변 감사드려요
처음 접속했을 때 브라우저 창 url에는 http://localhost/bbs/board 로 나오고, board를 안치면 welcome 메시지가 나옵니다. (bbs는 폴더 이름입니다) view 창으로 넘어갔을 때는 http://localhost/bbs/board/view/ci_board/board_id/11/page/1 메서드, 변수까지 잘 나오는 걸로 봐서, 말씀하신대로 세번째 세그먼트가 없는것 같습니다. 페이지네이션 버튼으로 이동한 후에는 url이 잘 나오는 걸로 봐서, 첫번째 접속에서만 정보를 못받는 것 같습니다. 아무리 찾아봐도 첫번째 주소를 할당하는 곳이 어딘지 모르겠네요 ㅜㅜ 주소를 어디에서 고칠 수 있나요? |
변종원(웅파)
/
2013/08/23 10:34:48 /
추천
0
주소를 덜 치신게 맞습니다.
잘 생각해보세요. 게시판 리스트에 접속할때 기존 방식이라면 a.com/board.php?table=ciboard&method=list 이렇게 합니다. ci의 주소체계에서는 a.com/board/list/ciboard 이렇게 하는거죠. http://localhost/bbs/board 라고만 치면 어떤 게시판인지 어떻게 알까요? ^^ 책 보시면 주소가 http://localhost/bbs/board/lists/ci_board/ 라고 나와있습니다. 책 구조상 todo, bbs, sns 프로젝트를 각각의 디렉토리에 나눠놔서 bbs는 게시판 프로젝트의 디렉토리이고 board는 컨트롤러 lists는 메소드(함수) ci_board는 게시판명을 나타냅니다. (책에도 명시) ci라고 기존 php와 완전 다른 무언가가 아닙니다. 주소의 형태가 쿼리스트링 방식에서 검색엔진 친화적이고 사용자가 알아보기 쉬운 방식으로 바뀐 것과 mvc패턴이 적용된 것! 이게 가장 큰 다른 점입니다. 주소형태가 바뀌었다고 해서 내용이 바뀌는 것은 아닙니다. 위에 적었듯이 기본적으로 있어야 하는 것은 동일합니다. 처음부터 http://localhost/bbs/board/lists/ci_board/ 로 접속하세요. |
yjin
/
2013/08/23 11:12:23 /
추천
0
브라우저에 url을 타이핑할 때 부터 메서드/변수 까지 쓰는 것이었군요..ㅎ
인덱스페이지로 접속하면 미리 설정된 인덱스 함수(=lists)가 돌아가는 것이라고 생각해서 헷갈렸네요. 자세한 설명 감사합니다. 이제 잘 되요 :) |
세번째 세그먼트가 없는건 아닌지요?
localhost/index.php/controller/method/var/1
index.php segment 0
controller 1
method 2
var 3
1 4
이렇게 됩니다.
다른 세그먼트 값은 잘 나오는지요?