질문 Q #8664
"여러개의 뷰를 로드하기" 질문있습니다.
Harry 2009-11-25 17:12:45
2개이상 뷰를 호출시에 아래와 같이
$this->load->view('header');
$this->load->view('menu');
$this->load->view('content', $data);
$this->load->view('footer');
작성하면 4개의 뷰가 append되어 출력된다고 유저가이드에서 확인하였습니다.

하지만 제가 원하는건
$this->load->view('header');
$this->load->view('footer');
이 두개를 Controller에 출력하지 않아도 항시 출력되도록 하고 싶은 것입니다.

그렇게 출력하게 되면 문제의 소지가 있지만.. 궁금해서요..

답변 3
#1 ci세상 2009-11-25 17:18:03
_remap 이용하시면 될것 같습니다.
/**
 *  레이아웃 정의
 */	
function _remap($method)
{
						
	// 상단정의
	$this->load->view('header');

	// 메쏘드 유무를 체크해서 가변함수 처리하기
	if ( method_exists($this,$method.'_method'))
	{
		$this->{"{$method}_method"}();
	}
	else
	{
		$data['url']= 'sample'; 
		$this->load->view($method,$data);
	} 		

	// 하단정의
	$this->load->view('footer');
	
}
메뉴얼 : http://codeigniter-kr.org/user_guide/general/controllers.html#remapping
응용소스 참조 : http://codeigniter-kr.org/source/view/255



#2 변종원(웅파) 2009-11-25 17:25:14

레이아웃으로 검색했을때 hook으로 레이아웃 한방에 훅 이라는 글도 있고
포럼에서 _remap 으로 검색하시면 ci의 _remap() 함수를 이용한 방법도 있고

한방에 정리된 글은 http://codeigniter-kr.org/qna/view/1324 입니다.

#3 Harry 2009-11-25 20:23:22
오호 그렇군요..감사합니다. 조금씩 이해되는군요 ^-^

CI에 더 매진하도록 하겠습니다.

수고하시고 좋은 하루 되세용~