2009-11-12 31 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

爲什麼你需要包括$這個 - >負載>視圖( '結果',$數據);循環內?多一點信息會很好。 – tplaner 2009-11-12 21:55:55

+0

是的。聽起來很奇怪。在循環中加載視圖 – GabiMe 2009-11-12 22:03:41

回答

3

我不建議從您的視角調用您的模型。嘗試遵守MVC框架標準時,這不是最佳實踐。從您的控制器調用模型,並將「users」數組作爲$ data的一部分傳入視圖。現在,您只需在視圖中訪問$ 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

在視圖中循環。

<div> 
    <?php foreach ($this->user_model->get_users() as $users): ?> 
     <p><?php echo $user->first_name;?></p> 
     <p><?php echo $user->last_name;?></p> 
    <?php endforeach; ?> 
</div> 

該示例直接從模型中獲取數據,這個模型已經在codeigniter論壇中多次討論過。

+0

我允許自己添加缺少的PHP標記... – Boldewyn 2010-01-22 15:17:36

+0

感謝Boldewyn – 2010-01-26 04:12:22

+1

請不要從視圖調用模型。您的控制器應該從模型中獲取數據,然後將其傳遞給您的視圖。 – Ferdy 2010-02-11 15:17:08

相關問題