2012-09-01 6 views
1

컨트롤러에서 두 개의 뷰 파일로 변수를 전달하고 싶습니다.두 개의 뷰로 데이터 전달하기

public function post($id) { 
    $data['query'] = $this->blog_model->get_post($id); 
    $data['comments'] = $this->blog_model->get_post_comment($id); 
    $data['post_id'] = $id; 
    $data['total_comments'] = $this->blog_model->total_comments($id); 

[total_comments] 변수를 index.php 및 post.php보기에 전달하고 싶습니다. 어떻게해야합니까? 다음과 같이 데이터를로드하지 않고 뷰에 전달할 수 있습니까?

 $this->load->view('post',$data); 

답변

4

이 줄에 뭔가가 있습니까?

$data['post'] = $this->load->view('post',$data, TRUE); 

'TRUE' 인수는보기를 호출하고 $data['post'] 변수에 배치 할 CI를 알려줍니다. 나중에 다른 뷰에서 해당 변수를 사용하여 인쇄 할 수 있습니다.

편집 :

나는 당신이 당신의 컨트롤러와 뷰를 구성하지만,이 같은 것을 말할 수있는 방법을 잘 모르겠어요. 당신이 컨트롤러는 뷰에서 모든 요소를 ​​액세스 할 수 있도록 당신이보기에 전체 $data 배열을 전달하는에 $data을 통과 할 때마다

컨트롤러

public function comments() { 
     $data['comments'] = $this->comments_model->get_all_comments(); 
     $data['someVariable'] = 123; 
     $this->load->view('header', $data);   //load header view 
     $data['sidebar'] = $this->load->view('sidebar', $data, TRUE); //put sidebar view in a variable, but don't show it immediately 
     $this->load->view('comments', $data);  //load comments view 

     $this->load->view('footer'. $data);   //load footer view 
    } 

: 이것은 단지 예입니다.

comments.php보기에서 예를 들어 $comments, $someVariable$sidebar 개의 변수가 있으므로 원하는대로 할 수 있습니다.

comments.php에서 당신은 아마 이런 식으로 뭔가있을 것 :

comments.php을

<div id="comments"> 
<?php 
    foreach($comments as $c){  //print out all found comments 
?> 
    <div class="comment"> 
     <?= $c['commentauthor'] ?> <br /> 
     <?= $c['commenttext'] ?> 
    </div> 
<?php } ?> 
</div> 

<div id="sidebar"> 
    <?= $sidebar ?>  //print out sidebar 
</div> 

<p> This is some variable: <?= $someVariable ?> </p> 

당신이 $ 데이터를 통과했기 때문에 그 같은 변수, 바닥 글보기에서 사용할 수 있습니다 그 전망에

$this->load->view('footer'. $data); 

나는 이것이 당신에게 조금 더 분명하게되기를 바랍니다.

+0

OK 인덱스 파일에 전달하는 방법을 설명 할 수 있습니까? –

+0

당신이 말하는 것을 보았습니다. 그러나 데이터를로드하지 않고 인덱스보기로 전달해야합니다. 다른 방법으로 내가 게시물, $ 데이터를로드했습니다. 게시물 뷰에서 인덱스 뷰에 $ 데이터 변수를 가져와야합니다. –

+1

글쎄, 나는 '로드하지 않고'무엇을 의미하는지 모르겠다. '$ this-> load-> view ('index', $ data, TRUE);는 뷰를 출력하지 않고 인덱스 뷰에'$ data'를 전달합니다. 위의 예에서 '사이드 바'보기와 비슷합니다. –

관련 문제