2016-12-07 2 views
-1

컨트롤러에서 Codeigniter의 서브 뷰로 데이터를 전달할 때 가장 좋은 방법을 찾고 있습니다. 지금까지 서브 뷰를로드하는 레이아웃 파일을 만들었습니다. 예를 들어, 내가 이것을 해왔다면 효과가 있지만 깨끗한 방법으로 작업하고 있는지 궁금해하고 있습니까? 아니면 모든 기능에 대해이 작업을 수행하지 않고도 내 HTML 및 CSS 템플릿을 만드는 데 더 좋은 옵션이 있습니까? 서브 뷰 codeigniter에 데이터를 전달하는 모범 사례

현재 페이징로드 및 서브 뷰이 통과 할 때

여기 내 코드 등 $ VAR1, $ VAR2, $ VAR3 각각 별도 $ 데이터 변수를 바꾸기.

function index($start=0) 
{ 
    $var1['posts']=$this->post->get_posts(3,$start); 
    $this->load->library('pagination'); 
    $config['base_url']=base_url().'posts/index/'; 
    $config['total_rows']=$this->post->get_posts_count(); 
    $config['per_page']=3; 
    $this->pagination->initialize($config); 
    $var2['pages']= $this->pagination->create_links(); 
    $var3=array('subview' => 'post_index'); 

    $data=array_merge($var1, $var2, $var3); 

    $this->load->view('layouts/layout',$data); 
} 

그리고 내 템플릿 파일

나는 파단을로드 본문에 코드 줄을 사용 :이

<?php $this->load->view($subview); ?> 
+0

무엇이'$ var3 = array ('subview'=> 'post_index')입니까? –

+0

post_index는 블로그의 모든 게시물을 나열하는 하위보기의 이름입니다. 이 코드 행은 'subview'를 포스트 인덱스로 지정하여 레이아웃의 본문 안에이 서브 뷰를 배치합니다. 각 페이지에서 다음과 같이 사용됩니다 : $ var3 = array ('subview'=> '로그인 양식'); ' $ var3 = array ('subview '=>'products_index '); –

답변

2

좋아 실제로 그렇게하는 방법입니다. 이라는 뷰가 있고 $var['posts']을 전달한 다음 해당 뷰를 마스터 레이아웃에 넣고 싶다고 가정합니다. 데이터로 뷰를 반환 문서

CodeIgniter의에서

$var['posts'] = $this->post->get_posts(3, $start); 

// setting the third parameter as true would return the view as 
// data which you can pass to another view 
$data['page'] = $this->load->view('post_index', $var, TRUE); 
$this->load->view('layouts/layout', $data); 

세 번째 선택적 매개 변수가 문자열 로 데이터를 반환 있도록하는 방법의 동작을 변경 수있다 그것을 당신의 브라우저에 보내기보다는. 이 어떤 식 으로든 데이터를 처리하도록하려는 경우 유용 할 수 있습니다. 매개 변수를 TRUE (부울 값)으로 설정하면 데이터를 반환합니다. 기본 동작은 false이며, 은 브라우저로 보냅니다. 데이터를 반환하려면 변수에 할당해야합니다.

관련 문제