2013-11-25 2 views
0

그래서 CodeIgniter로 조금 놀고 있습니다. 지금은 "페이지 개요"페이지를 작성하려고합니다. 나는 페이지를 만들 수있는 다른 페이지를 가지고 있는데, 나는 그 페이지들을 개요로 보여주고 싶다.컨트롤러에서 모델의 변수 사용하기 - CodeIgniter

public function page_list(){ 
    $query = $this->db->get('pages'); 

    if ($query){ 
     $pageListing = "<table class='table table-striped'>"; 
     foreach ($query->result() as $row){ 
      $pageListing .= "<tr>"; 
      $pageListing .= "<td>".$row->title."</td>"; 
      $pageListing .= "<td>".$row->category."</td>"; 
      $pageListing .= "<td>".$row->date."</td>"; 
      $pageListing .= "<td><a href='delete_page/".$row->id."'>delete</a></td>"; 
      $pageListing .= "<td><a href='edit_page/".$row->id."'>edit</a></td>"; 
      $pageListing .= "</tr>"; 
     } 
     $pageListing .= "</table>"; 
    } else { 

     $pageListing = "There are no pages to display"; 
    } 
} 

나는 그것이 그 일을하는 가장 좋은 방법이 아니다 알고

는 지금 난 내 모델 나는 다음 얻었다. 나는 분명히 모델의 뷰에 속한 html 코드를 작성하고있다. 지금 나는 그것에 대해 신경 쓰지 않는다. 난 그냥 내 컨트롤러에서 변수 $pageListing을 사용하는 방법을 알아 내려고하고 거기에서보기로로드. 나는이 작업을 수행 할 수있는 경우

public function displayPages { 
    $this->load->model('model_pages'); 
    $this->model_pages->page_list(); 
    echo $this->model_pages->pageListing; 
} 

성공적으로 난 내보기에 $pageListing를 사용할 수 있습니다

나는 다음과 같은 방법으로 변수를 사용하여 시도했다. 모델의 코드를 HTML로 내가 전에 말했듯이

A PHP Error was encountered 
Severity: Notice 
Message: Undefined property: Main::$pageListing 
Filename: core/Model.php 
Line Number: 51 

, 나는, 이것이 가장 좋은 방법은 아니라는 것을 알고, 컨트롤러에서 에코 :

은 지금 나는 다음과 같은 오류가 발생합니다. 이것은 실험을위한 순수하고, 나는 단지 내가이 일을 할 수 있는지 궁금 해서요. 앞으로 모델에서 다른 변수를 사용해야하므로 전체 HTML 코드가 포함되지 않는다는 것을 제외하고는 정확한 길이 남을 수 있습니다.

+1

결과가없는 경우 모델에 대해 생각해 보는 또 다른 방법은 false를 반환합니다. 다음 컨트롤러에서 $ this-> model_pages-> page_list(); false를 반환합니다 -> 결과보기 페이지가 표시되지 않습니다. 그런 식으로 "컨트롤러"는 어떤 뷰가 표시되는지 "제어"합니다. – cartalot

답변

2

$pageListing을 모델에서 컨트롤러로 되돌립니다.

return $pageListing; 

편집 :

public function displayPages { 
    $this->load->model('model_pages'); 
    echo $this->model_pages->page_list(); 
    //echo $this->model_pages->pageListing; 
} 

또는

public function displayPages { 
    $this->load->model('model_pages'); 
    $data['pageList'] = $this->model_pages->page_list(); //assign to a variable 
    $this->load->view('pagelist', $data); //is a file pagelist.php in your views folder 

}

을 이제 두 번째 방법을 할 경우 (모델 함수의 끝 부분에이 줄을 추가 올바른 방법으로) pagelist.php에서 변수를 얻을 수 있습니다.. 그럼 당신의 viewfile에 그냥 echo $pageList.

+0

그래도 문제가 해결되지 않습니다. 나는 여전히 변수가 정의되지 않았다는 동일한 오류 메시지를 받는다. – Kevinvhengst

+0

이제 작동 했습니까? –

+0

두 번째 옵션이 효과가있었습니다! 고마워. 이것은 이해하는데 정말로 도움이되었습니다! Thxx – Kevinvhengst

관련 문제