Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter-将复杂的IF语句移出视图_Php_Codeigniter - Fatal编程技术网

Php Codeigniter-将复杂的IF语句移出视图

Php Codeigniter-将复杂的IF语句移出视图,php,codeigniter,Php,Codeigniter,我目前正在做一个项目,这意味着我要处理很多日期,我有一个视图,用户可以在其中看到下周各种事件的概述 该视图显示多个帐户的多个事件 我面临的问题是,我的视图有一些相当复杂的IF语句(检查当前日期、检查事件日期、检查事件的帐户id等),它开始看起来很混乱,我相信它可以做得更简单/更精简 如何将IF语句移动到控制器 我试图查找CI的最佳实践,但没有找到任何有用的方法 如有任何见解,将不胜感激 我会有一个单独的函数(在控制器或库中)用于准备数据。这个函数只需要返回一个数组,这样就可以在HTML中构造数据

我目前正在做一个项目,这意味着我要处理很多日期,我有一个视图,用户可以在其中看到下周各种事件的概述

该视图显示多个帐户的多个事件

我面临的问题是,我的视图有一些相当复杂的IF语句(检查当前日期、检查事件日期、检查事件的帐户id等),它开始看起来很混乱,我相信它可以做得更简单/更精简

如何将IF语句移动到控制器

我试图查找CI的最佳实践,但没有找到任何有用的方法


如有任何见解,将不胜感激

我会有一个单独的函数(在控制器或库中)用于准备数据。这个函数只需要返回一个数组,这样就可以在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(在控制器或“主”视图中),并根据结果加载某个部分?