我會有一個單獨的函數(在控制器或庫中),用於準備數據。這個函數只需要返回一個數組,這樣就可以在HTML中構造數據而不需要所有的條件檢查。
這是一個數據預處理庫的例子,它不會只是工作,所以你需要創建一個完整的庫,它只是給你一個大概的想法。
<?php
class prepare {
function prep_page_data($page_id) {
$output = array();
$query = $this->ci->db->get_where("page_data", array("page_id" => $page_id));
foreach($query->result_array() as $row) {
$output = $row;
//complete all addtional checks below
if($row['datetime'] < date("Y-m-d 00:00:00")) {
$output['archive'] = "old"
}
else {
$output['archive'] = "new";
}
//you can add as many conditions as you like to complete the data collection.
}
return $output;
}
}
?>
來源
2012-09-28 13:31:15
mic
聽起來像是你需要一些[主持人類](http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter)在你的模型之上,你可以推擠所有這些條件,並給他們一些描述性的名字。 – complex857
是否有助於將你的視圖分成幾部分,做你的if(無論是在控制器還是在「主」視圖中),並根據結果加載某個片段? –
你能發表一些代碼嗎? –