제목 | 초보질문 | ||
---|---|---|---|
글쓴이 | 머털 | 작성시각 | 2011/07/12 21:28:24 |
|
|||
완전초보입니다. board.php?BID=$name&UID=$uid board.php라는 모델값에서 변수로 BID와 UID로 받아서 view하려면 어떻게 해야하나요? 뷰까지안가구, 컨트롤러에서 해결할순없는건가요? board/$name/$uid class Board extends CI_Controller { public function index() { echo""; } public function list($name,$uid){ $this->load->model('wizboard'); //////////////////////////////////////////////////////////////////////////////////////////////view까지 안가구 컨트롤러에서 해결안될까요 } view페이지가 꼭나와야한다면,,, 어떻게 해야될지,,,,,설명서를 뒤져봐도 모르겟어요 현재 php로 board.php?BID=$name&UID=$uid 이런형식으로 쓰다가 board/$name/$uid 이렇게 쓰구 싶은 상태입니다. |
|||
다음글 | 데이터베이스 한글이 출력안되는현상 (3) | ||
이전글 | 완전초보질문///답변부탁드려영 (4) | ||
머털
/
2011/07/12 21:34:08 /
추천
0
|
헛발이
/
2011/07/13 09:49:29 /
추천
0
자신이 원하는 데로 잘 안되죠? ^^; 저도 사실 처음에 기존방식으로 잘 안되서 참 답답하고 그랬던 기억이 막 나니 머털님의 마음이 막 전해 지는군요^^;
일단 머털님이 어느정도의 프레임워크에 대해서 알고 있는지를 잘 모르겠지만..일단 완전 모른다 생각하고 다음을 설명 할테니 참고 하시기 바랍니다.. 우리가 지금까지 PHP를 사용해서 프로그램을 짜면 값을 넘기고 넘겨 받고 데이터를 불러오고 화면에 출력하고 하는 일을 했을것입니다. 그것을 간단히 작성해 보면 <a href="./bbs/board_view.php?uid=1">글보기</a> //이렇게 값을 GET으로 넘겨 주고 받는 쪽에서는 $uid = $_GET['uid'];이렇게 작성해서 값을 처리 하곤 했을 것입니다. 이것은 각기 처리 하는 페이지가 모두 다르기 때문에 값을 다른 페이지로 전달 할경우 해당 페이지의 이름 즉 board_view.php라는 곳으로 uid값을 get으로 넘긴다로 해석할 수 있죠.. 그런데 프레임 워크는 약간 다른 방식입니다. 처음엔 잘 이해가 가지 않겠지만 프레임 워크는 모든 일은 index.php가 다 합니다. 어떤 콘트롤러를 사용하건 어떤 모델을 사용하건 모든것은 가장 Root에 있는 index.php가 다 하는것이죠. 이해 가시나요? 즉 자신이 만약에 ... //프레임워크를 사용할 경우 echo anchor('bbs/board_view/uid/'.$id, '글보기'); //위처럼 하게 되면 결과가 <a href="bbs/board_view/uid/">글보기</a>가 됩니다. ?>이렇게 링크를 하기 되면 실제 bbs라는 콘트롤러의 bbs.php가 링크 되는 것이 아니에요. 다시 말 하면 bbs/board_view/uid/하게 되면 이것을 모두 www밑에 있는 index.php가 모든 값을 접수 하게 됩니다. 그래서 URL주소에 있는 모든 값을 스스로가 해석해서 첫번째 값 즉 bbs의 콘트롤러를 찾게 되고 그 다음의 두번째 값의 board_view라는 메소드 즉 콘트롤러안의 함수를 찾게 됩니다. 그리고 그 이후의 값들 uid와 1이란 값은 3번째 이후의 모든 값은 변수로 인식하게 됩니다. 여기 참조 : http://codeigniter-kr.org/user_guide/general/urls.html 그래서 실제 외부적으로 처리 되는것은 index.php가 모두 처리 하는것이고 내부적으로는 URL을 해석해서 콘트롤러나 모델 뷰 등을 찾아 결과를 만들어 내고 모든 결과물을 index.php에서 출력하게 되는것이죠.. 그러니 질문 하신것처럼 board.php?BID=$name&UID=$uid //(x)이렇게 값을 보낼 수가 없어요.. 만약에 값을 보내려면 이렇게 보내면 안되고 bbs/board/BID/$name/UID/$uid //(o)이렇게 보내서 처리를 하면 됩니다. 또는 코드이그나이터에서 쿼리 스트링을 사용하시면 이렇게도 가능합니다. bbs/board?BID=$name&UID=$uid //(o)이렇게도 가능합니다. 하지만 확장자는 사용할 수 없죠.. 이렇게 사용하게 되면 이건 자신이 직접 처리하는 부분을 만들어야 해요. 왜냐 하면 위처럼 하게 되면 세그먼트는 bbs라는 값과 board?BID=$name&UID=$uid 값 두개로 나눠 지기 때문에 실제로 값으로 받아 드릴 수가 없어요.. 그러기 때문에 뒷부분 측 ?다음에 값이 있다면 그걸 =으로 분리해서 변수명과 값을 구분지어서 처리 할 수 있는 값으로 해주는 부분을 직접 만들어야 가능합니다. 여기도 함 참조 해보세요. http://codeigniter-kr.org/user_guide/libraries/uri.html 그리고 질문중에 모델보드를 만들었다고 하셨는데.. 그 말이 좀 이해가 안가네요... 게시판을 모델로만 만드셨다는건가요? 즉 다시 한번 정리를 하면 다음과 같습니다. 뷰에서는 $id = 1; echo anchor('bbs/board_view/'.$id, '글보기');콘트롤러에서는 class Bbs extends CI_Controller { function __construct() { parent::__construct(); } function board_view() { $uid = $this->uri->segment(3); echo $uid; } }이렇게 한다는것이죠.... |
헛발이
/
2011/07/13 10:07:44 /
추천
0
질문을 유심히 다시 읽어 보고 다시 읽어 보고 했는데 혹시 이런 구조인가요?
일반 PHP로 된 a.com이라는 사이트에서 board.php?BID=$name&UID=$uid라고 링크를 클릭하면 내가 만든 코드이그나이터의 b.com에서 값을 받아야 하는 상황인가요? 만약에 그렇다면 아마 값을 받기 힘들거에요..100%절대로 안되는건 아니겠지만 만약에 그런거라면 아마 그 부분을 처리 하는 루틴을 만셔야 할거에요... 코드이그나이터는 /(슬레쉬)를 통해서 값을 구분 하기 때문에 board.php?BID=$name&UID=$uid로 값을 받게 되면 이것은 하나의 값으로 간주 하게 될거에요.. 그러니 그 값을 받아 어디까지가 값이고 어디까지가 변수고 파라메타가 몇개가 되는지 자동으로 해석하는 그런 루틴을 만든다면 가능할지 모르지만.. 이런 경우라면 그냥 넘겨주는 쪽에서 코드이그나이터에 맞게 넘겨 주시는게 좋을거 같네요... |
현재 주소체계가 (board.php?BID=$name&UID=$uid) 이런형식으로 되있는데
board/$name/$uid이렇게 쓰구 싶은겁니다,.,
그래서 모델보드를 만들었는데,,
컨트롤러 작성중에
$this->load->model('board');
여기서 어떻게 (board.php?BID=$name&UID=$uid) 이렇게 변수값들을 넘겨줘야
board/$name/$uid 이렇게 주소가 나올수 있겟는가가 궁굼한 상태입니다..