【发布时间】:2012-02-08 11:50:04
【问题描述】:
我正在使用 CodeIgniter 编写票务管理系统,但我有一个 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 原则。
颜色逻辑应该放在哪里?
【问题讨论】:
标签: php model-view-controller codeigniter