Php Codeigniter-将复杂的IF语句移出视图
我目前正在做一个项目,这意味着我要处理很多日期,我有一个视图,用户可以在其中看到下周各种事件的概述 该视图显示多个帐户的多个事件 我面临的问题是,我的视图有一些相当复杂的IF语句(检查当前日期、检查事件日期、检查事件的帐户id等),它开始看起来很混乱,我相信它可以做得更简单/更精简 如何将IF语句移动到控制器 我试图查找CI的最佳实践,但没有找到任何有用的方法Php Codeigniter-将复杂的IF语句移出视图,php,codeigniter,Php,Codeigniter,我目前正在做一个项目,这意味着我要处理很多日期,我有一个视图,用户可以在其中看到下周各种事件的概述 该视图显示多个帐户的多个事件 我面临的问题是,我的视图有一些相当复杂的IF语句(检查当前日期、检查事件日期、检查事件的帐户id等),它开始看起来很混乱,我相信它可以做得更简单/更精简 如何将IF语句移动到控制器 我试图查找CI的最佳实践,但没有找到任何有用的方法 如有任何见解,将不胜感激 我会有一个单独的函数(在控制器或库中)用于准备数据。这个函数只需要返回一个数组,这样就可以在HTML中构造数据
如有任何见解,将不胜感激 我会有一个单独的函数(在控制器或库中)用于准备数据。这个函数只需要返回一个数组,这样就可以在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;
}
}
?>
听起来您需要在模型上添加一些条件,这样您就可以取消所有这些条件,并为它们指定一些描述性名称。将视图拆分为多个部分是否有帮助,是否执行if(在控制器或“主”视图中),并根据结果加载某个部分?