CI 묻고 답하기

제목 포럼 같은 url 사용하려면?
글쓴이 스크림 작성시각 2012/06/25 13:26:13
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 30873   RSS

포럼과 같은 url 형태를 사용하고 싶습니다.



"url / 페이지 이름 / 메소드 명 / 파라미터" 와 같은 형태로요.

기본적으로 코드이그니터는

"url / 컨트롤러명 / 메소드명 / 파라미터 " 와 같은 형태인데


제로보드도 그렇지만 이것 역시나

페이지 이름을 치면 그 페이지가 의존하는 컨트롤러를 로드 해서 사용하는가 본데

_remap 을 사용해서

페이지 이름을 가져오고 그 페이지 이름으로 db에서 검색해서 그 페이지가 연동되는 컨트롤러를 불러와야 하는데

어떻게 해야할지 모르겠네요.


public function _remap($method, $params = array())
  {
      $method = 'p'.$method;
      if (method_exists($this, $method))
      {
   return call_user_func_array(array($this, $method), $params);
      }
      show_404();
  }

지금 이러한 코드를 가지고 낑낑 대고 있긴한데,
이게 현재 컨트롤러와 같은 곳의 메소드는 불러올 수 있는데

다른 파일에 있는 컨트롤러를 가져올수가 없잖아요?

include 를 시키고 "new 클래스명"시키는 식으로 객체를 만드러서 사용해줘야 하나요?


 

아래에 route 규칙으로 하면 된다고 한 글이 있더라구요.

헌데 저 글에 있는 예제들만 따라해볼 경우 결과적으로

게시판만 사용할수 있을 것 같습니다.


저는 조건문으로 확인해서 모듈을 선택해 주고 싶습니다. 정확히는 db에서. 해당 페이지 이름에 맞는 컨트롤러가 먼지
확인 해보고 하는 식 말입니다.

예를 들면 http://url.com/notice/1 은 일반게시판(board컨트롤러 ) notice 게시판 1번글 가져오기고
http://url.com/nicememo/2 는 사진뷰어(memo 컨트롤러  ) 로 가게 하고 싶습니다 예를 들어
http://url.com/memo/nicememo/2 와 같은 역할을 하도록 말이죠.

첫번째는 url.com/board/notice/1 과 같이..

즉 원하는건 컨트롤러를 선택할 수 있는가 입니다.
 

 다음글 plugin::run 이런구문이 있나요? (3)
 이전글 board ID 지정하는곳 (4)

댓글

변종원(웅파) / 2012/06/25 13:47:40 / 추천 0
원하시는 기능은 일단 주소체계가 먼저 정의 되어야 합니다.

예를 들자면 1,2,3번째 세그먼트는 컨트롤러, 메소드나 기타 url에 관련된 것이다.
 4번째 부터는 변수이다. 처럼 정형화된 규칙이 있다면 손쉽게 처리할 수 있는 문제이구요. (routes.php)

비 정형화된 주소라면 (예를 들어 3번째 세그먼트가 변수이고 어떤 것은 4번째 세그먼트가 변수)
각각의 주소와 라우팅하는 주소를 데이터베이스에 넣어놓고 비교하여 routes.php를 가변적으로 처리하셔야 합니다.

원하시는 형태가 비정형이라서 웹주소-실제연결주소 가 담긴 매핑 테이블이 필요합니다.
한대승(불의회상) / 2012/06/25 14:51:25 / 추천 0
route.php 를 손보시면 됩니다.

http://cikorea.net/user_guide_2.1.0/general/routing.html