今天在做一个活动功能的时候,涉及到活动的状态,会根据status属性和valid_start和valid_end来确定数据的最终status,最开始做的时候做的比较复杂,在各个需要判断活动状态的地方都做了判断,后来经过主管指点,重新进行规划
在Model页做了如下更改
public static $finalStatusList = [
1 => '待提交',
2 => '待审核',
3 => '审核不通过',
4 => '审核通过',
5 => '已上线',
6 => '已下线',
];
public function getFinalStatus()
{
if ($this->is_deleted) {
return 0;
}
if ($this->is_canceled) {
return 6;
}
if ($this->status == 4 && $this->valid_start < date('Y-m-d H:i:s') && $this->valid_end > date('Y-m-d H:i:s')) {
return 5;
}
if ($this->status == 4 && $this->valid_end < date('Y-m-d H:i:s')) {
return 6;
}
return $this->status;
}
其中,finalStatusList是自己规划的一个最终状态值得数组,
getFinalStauts是根据数据的相关特性判断数据的最终状态值
然后就可以直接在页面需要使用状态值得地方直接使用,如果是需要显示状态信息,则在相关help文件写下如下方法
public static function finalStatus2Des($status)
{
if (isset(ActList::$finalStatusList[$status])) {
return ActList::$finalStatusList[$status];
}
return '未知';
}
在此记录下,是希望自己在以后的开发中,多多注意,不要做那么多无用功!