2009-11-12 3 views
0

방금 ​​CodeIgniter를 시작 했으므로 루프에 이와 같은 코드를 넣으면 문제가 느려지는지 궁금합니다.CodeIgniter를 사용하면 루프에서 뷰를로드하는 것이 바람직하지 않습니다.

$data['title'] = 'the title'; 
    $data['content'] = 'blah blah blah'; 
    $this->load->view('result', $data); 

내가 CodeIgniter는 그 문제에 대한 것들, 또는 PHP 자체를 처리하는 방법을 전혀 모르겠어요. 예를 들면 내가 이것을했다. 각 반복마다 파일을 읽으시겠습니까?

$data['title'] = 'the title'; 
    $data['content'] = 'blah blah blah'; 
    include 'result.php'; 

또한 루프에서 컨트롤을로드해도 괜찮습니까? 아니면 루프에 컨트롤을 넣어서 뭔가를 잃어 버렸습니까? 감사.

추가 정보 사용자 프로필에 대한 검색 결과가 있습니다 ... 그리고 나는 검색 결과 페이지에 표시 할 프로필보기의 슬림화 된 버전을 만드는 것을 고려하고있었습니다. 이를 위해 견해를 사용하는 것은 나쁜 습관입니까?

+0

왜 당신의 $ this-> load-> view ('결과', $ 데이터)를 포함해야한다; 루프 안에서? 조금 더 많은 정보가 도움이 될 것입니다. – tplaner

+0

예. 이상하게 들린다. 루프에서 뷰 로딩 – GabiMe

답변

3

보기에서 모델을 호출하지 않는 것이 좋습니다. 이것은 MVC 프레임 워크 표준을 유지하려고 할 때 가장 좋은 방법은 아닙니다. 컨트롤러에서 모델을 호출하고 $ 데이터의 일부로 뷰에 "users"배열을 전달하십시오. 이제 뷰의 변수처럼 $ users 배열에 액세스합니다. 당신이 가진 것과 비슷하지만 모델에 대한 액세스를 컨트롤러로 다시 가져옵니다.

컨트롤러

$data['title'] = 'the title'; 
$data['content'] = 'blah blah blah'; 
$data['users'] = $this->user_model->get_users(); 
$this->load->view('result', $data); 

보기

<?php foreach ($users as $user) { 
    echo '<p>' . $user->first_name . '</p>'; 
    echo '<p>' . $user->last_name . '</p>'; 
}?> 
2

컨트롤러에서 뷰 파일로 루프를 이동하는 것에 대해 생각해보십시오 (컨트롤러에서 뷰 파일을로드하기 전에 모든 데이터를 준비해야합니다). 뷰 파일을로드하는 데는 하나의 호출 만 있고 뷰 파일에서는 루프 사이클의 정보를 원하는대로 인쇄 할 수 있습니다.

2

보기에서 반복하십시오.

이 샘플은 codeigniter 포럼에서 여러 번 논의 된 모델에서 직접 데이터를 가져옵니다.

+0

누락 된 PHP 태그를 추가 할 수있었습니다 ... – Boldewyn

+0

thanks Boldewyn –

+1

보기에서 모델을 호출하지 마십시오. 컨트롤러는 모델에서 데이터를 가져 와서 뷰에 전달해야합니다. – Ferdy

관련 문제