我正在使用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