CI 묻고 답하기

제목 초보라서... 죄송합니다...
글쓴이 람이 작성시각 2013/11/20 17:14:48
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 13433   RSS
제가 컨트롤러 안에 main.php를 만들고 뷰에는 main 과 login을 만들어 두었습니다. 컨트롤러 main에는 class Main extends CI_Controller { function __construct() { parent::__construct(); $this->load->database(); $this->load->helper('url'); } function _remap($method) { $this->output->enable_profiler(TRUE); //헤더 include $this->load->view('head'); if( method_exists($this, $method) ) { $this->{"{$method}"}(); } //푸터 include $this->load->view('tail'); } function index() { $this->load->view('main'); } function login() { $this->load->view('login'); } } 이렇게 했구요... head.php 파일에서 로그인을 누르면 뷰에 login.php 파일을 실행하려고 하는데 안되네요... 제가 이제 막 C.I를 시작해서 그런지 아직 잘 모르겠습니다. 나이가 40대라 더 이해도가 느린것도 있네요... 에휴 !
 다음글 포럼 소스를 다시 다운받아 설치해보니 message 라... (2)
 이전글 disallowed characters 관련하여 질문 ... (5)

댓글

변종원(웅파) / 2013/11/20 17:21:17 / 추천 0
아직 주소와 컨트롤러, 메소드(컨트롤러 내부 함수)의 매칭, 
그리고 컨트롤러에서 뷰를 호출하는 기본 연결구조에 대한 이해가 부족한 것 같습니다.

ci(mvc패턴을 사용하는 다른 프레임워크도 마찬가지)는 뷰 파일을 바로 호출할 수 없습니다.

컨트롤러-뷰 연결을 통해서 컨트롤러에서 뷰를 호출하여 화면출력합니다.

head 파일에서 로그인 뷰를 출력하고 싶다면 로그인 뷰가 연결된 컨트롤러를 호출하면 됩니다.

위 소스에서는 /main/login 을 a href에 연결하면 됩니다.

/main/login > main 컨트롤러의 login 메소드 실행 -> 결과적으로 $this->load->view('login')이 실행되어
화면에 해당 뷰를 출력.


ci기본개념 : http://cikorea.net/lecture/view/26/page/2/

ci 동영상 강의 http://cikorea.net/lecture/view/354/page/1


CI_ORL / 2013/11/27 03:35:11 / 추천 0
음 도움이 되려나? 저두 약 멘땅에 헤딩 중인 약 한달차 입니다 같은 컨트럴러에서 다른 뷰 페이지를 호출하고자 하는 경우라 생각하고 제가 쓰고 있는 팁을 드리자면... var $i=`main`; function main(){ $this->load->view($this->i); } function login() { $this->i = `login`; $this->main(); } 같은 꼼수로 사용 중이죠! 물론 login 같은 경우 함수가 두둑하니 따로 호출하심이 옳다고 보입니만... 초보자의 꼼수이니 너그러히 봐 주시고 팁이 있으시면 조언도 부탁드립니다