我正在使用CodeIgniter編程票務管理系統,而且我有一個MVC困境,無論條件着色是在模型中還是在視圖中? 視圖應顯示網格中的所有票證。 假設票據有截止日期時間。在還剩不到一個小時的時候,票應該用紅色着色,當還剩一個到六個小時的時候,票應該用黃色着色,而當剩下六個多小時時,票應該着色綠色。MVC:「顯示顏色」邏輯應該在視圖還是模型中?
所以,應在視圖包含像
foreach($tickets as $ticket):
if($hours_left >= 6): <span class="green">...</span>
else if($hours_left >= 1 and $hours_left < 6) <span class="yellow">...</span>
if($hours_left < 1): <span class="red">...</span>
或邏輯應的顏色進行檢索從模型的屬性?
foreach($tickets as $ticket):
<span class="<?php echo $ticket->color; ?>">...</span>
在第一種情況下,視圖獲取邏輯,它不再是「啞」。更糟糕的是,如果這需要在多個視圖中應用,那麼我需要重複難以維護的代碼,例如,如果我想添加「藍色」顏色。
在第二種情況下,我需要在模型中嵌入顯示邏輯,這也違背了MVC原則。
顏色邏輯應放在哪裏?
是否有可能將該助手作爲Ticket_model的方法編寫?例如:$ ticket-> get_color()? CI可以嗎? – 2012-02-08 12:28:41
是的,更新了答案。 – Rooneyl 2012-02-08 12:51:44