CI 묻고 답하기

제목 controllers 폴더를 서브 폴더로 정리하였을때 다른 컨트롤러 불러오기
글쓴이 작성시각 2010/05/14 10:16:52
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 19750   RSS

현재 컨트롤러 구성이
controllers
          - adm
                    Main.php
          - board
                    Board.php
          Main.php

형태로 되있습니다.

이때 밖에있는 Main 에서 Board 컨트롤러를 불러올 수는 있는데요
controllers/Main.php 내용중 일부

require_once('board/Board.php');
$board = new Board($boardId);
...

근데 controllers/adm/Main.php 에서 Board 컨트롤러를 불러오지를 못합니다.
controllers/adm/Main.php 내용중 일부

require_once('../board/Board.php'); <- 파일을 찾을수 없다고 나와요 ㅠㅠ
$board = new Board($boardId);

controllers/adm/Main.php 에서 Board 컨트롤러를 불러올 방법 알려주세요 .

 다음글 index.php 없애기가 안되네욤.. 모든 자료 검토... (11)
 이전글 저 보통 이런거 하는사람 연봉은 어느정도? (11)

댓글

헛발이 / 2010/05/14 10:26:33 / 추천 0
한창 require_once로 열심히 연구 하시고 계시는데.. 문득 이런말 하긴 뭐 하지만...
한쪽 콘트롤러에서 다른 콘트롤러를 불러 와서 뭔가 하는것은
require_once보단 위젯사용이 좋다고 생각합니다...

하지만 뭐가 옳다고 할순 없고.. 위젯방식도 있으니 그것도 함 찾아 보시는것...좋을듯 싶네요...
^^;
변종원(웅파) / 2010/05/14 10:29:29 / 추천 0
ci의 기준은 index.php가 있는 디렉토리입니다.

저런 부분은 php기본내용입니다.
echo getcwd() . "\n";

에러가 나면 화면에 에러메세지가 출력이 되고 패스부분이 문제가 되는거면
현재 패스를 화면에 찍어보면 됩니다. 너무 기본적인거 아닌가요? ^^; 

/ 2010/05/14 11:01:59 / 추천 0
답변 감사합니다.

하다가 보니
require_once(dirname(dirname(__FILE__)).'board/Board.php');
로 처리를 하긴 했는데요 ;;

그런데 controllers/Main.php 여기서는
require_once('board/Board.php'); <- 이건 왜 되는거죠??
상대경로로 쓰여져 있길래 controllers/adm/Main.php 여기서는
위와 같이 쓰면 될줄 았았는데 안되더라고요..
이것때문에 햇갈렸는데 ;;

getcwd() 값은 둘다 웹루트(index.php 가 있는)로 나오는데...
변종원(웅파) / 2010/05/14 11:15:57 / 추천 0
 네. 기준 디렉토리 확인해보시라고 쓴 함수입니다.