2010-04-11 7 views
4

기본적으로 내 webapp에 대해 좀 더 체계적으로 구성하려고합니다. 이 순간, 때마다 내가 페이지를로드 할 때, 난 그렇게처럼 내 컨트롤러에서 그것을 할 수 있습니다CodeIgniter/PHP -보기 내에서보기 호출

 $this->load->view('subviews/template/headerview'); 
    $this->load->view('subviews/template/menuview'); 
    $this->load->view('The-View-I-Want-To-Load'); 
    $this->load->view('subviews/template/sidebar'); 
    $this->load->view('subviews/template/footerview'); 

당신이 정말 매우 효율적이 아니다 말할 수.

그래서 저는 '마스터'뷰를 만들 것이라고 생각했습니다. 그것은 template.php입니다.

<?php 
    $view = $data['view']; 

     $this->load->view('subviews/template/headerview'); 
     $this->load->view('subviews/template/menuview'); 
     $this->load->view($view); 
     $this->load->view('subviews/template/sidebar'); 
     $this->load->view('subviews/template/footerview'); 
?> 

그리고 나는이 같은 컨트롤러에서 호출 할 수있을 거라고 생각 :이 템플릿보기의 내용입니다

$data['view'] = 'homecontent'; 
    $this->load->view('template',$data); 

불행하게도 나는 단순히이 일을 할 수 없습니다. 누구든지이 문제를 해결할 수있는 방법이 있습니까? template.php에 $ view 주위에 ""s ""을 넣으려고했지만 아무런 차이가 없습니다. 일반적인 오류는 "정의되지 않은 변수 : 데이터"또는 "보기를로드 할 수 없습니다 : $ view.php"등입니다.

감사합니다.

당신은 내가 믿는

답변

13

:

$view = $data['view']; 

$this->load->view('subviews/template/headerview'); 
$this->load->view('subviews/template/menuview'); 
$this->load->view($view); 
$this->load->view('subviews/template/sidebar'); 
$this->load->view('subviews/template/footerview'); 

당신은 단지 라인을 제거해야합니다

$view = $data['view']; 

이것은 배열이 컨트롤러에서 전달 될 때 때문에 뷰의 변수는 $ data [ 'view']가 아닌 $ view를 통해 간단히 액세스 할 수 있습니다. 컨트롤러 클래스 :

public function __construct() 
{ 
    parent::__construct(); 

    $this->load->vars(array(
     'header' => 'partials/header', 
     'footer' => 'partials/footer', 
    )); 
} 

public function index() 
{  
    $data['page_title'] = 'Page specific title';   
    $this->load->view('my-view', $data); 
} 

보기 :보기에보기를로드하고 통과하는 데

<?php $this->load->view($header, compact('page_title')); ?> 
... blah blah ... 
<?php $this->load->view($footer); ?> 

여기

+0

감사합니다. 몇 분 후에 다시보고 할게. – Jack

+0

대단히 고마워,이 완벽하게 작동합니다! :) – Jack

+0

듣기 좋게 – dd0x