Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Codeigniter 代码点火器。如何装饰从DB in loop(视图中)获取的日期_Codeigniter_Date_Model View Controller_Explode - Fatal编程技术网

Codeigniter 代码点火器。如何装饰从DB in loop(视图中)获取的日期

Codeigniter 代码点火器。如何装饰从DB in loop(视图中)获取的日期,codeigniter,date,model-view-controller,explode,Codeigniter,Date,Model View Controller,Explode,这是我在这个网站上的第一个问题,所以我一直在寻找答案。 我正在制作一个包含一些活动(培训和实习)的网站,并有一些链接可供查找: 未来事件 时事 过去的事件 因此,这些不是类别,而是动态的,并以这样的方式(例如,“未来事件”): 主控员的培训: public function future() { $this->load->model('trainings_model'); $data['settings'] = $this->trainings_model->get_

这是我在这个网站上的第一个问题,所以我一直在寻找答案。 我正在制作一个包含一些活动(培训和实习)的网站,并有一些链接可供查找:

  • 未来事件
  • 时事
  • 过去的事件
因此,这些不是类别,而是动态的,并以这样的方式(例如,“未来事件”):

主控员的培训:

public function future()
{
$this->load->model('trainings_model');
$data['settings'] = $this->trainings_model->get_trainings_list('future');
$this->load->view('trainings_list_view',$data);
}
联合国模式:

function get_trainings_list($time)
    {
        $date = date('Y-m-d'); 
        switch($time) {
            case 'future':
                $this->db->where('start_date >', $date);
            break;
            case 'current':
                $this->db->where('start_date <', $date);
                $this->db->where('end_date >', $date);
            break;
            case 'past':
                $this->db->where('end_date <', $date);
            break;
        }
        $this->db->where('category','1');
        $query = $this->db->get('trainings');
        return $query->result_array();
    }
函数获取培训列表($time)
{
$date=日期('Y-m-d');
交换机($时间){
“未来”案例:
$this->db->where('start\u date>,$date);
打破
“当前”案例:
$this->db->where('start\u date',$date);
打破
“过去”一案:

$this->db->where('end_date),所以在评论之后,我知道你有什么问题

请编辑
将模型中的
行返回到此行

return($query->num\u rows()>0)?$query->result\u array():FALSE;

因此,只要结果为0,它就会返回(布尔值)FALSE,并且很容易处理

编辑控制器,使其看起来像

public function future() {
    $this->load->model('trainings_model');
    $data['settings'] = $this->trainings_model->get_trainings_list('future');
    if ($data['settings'] === FALSE) return 0; //no results or make something here that prevents looping in foreach
    foreach ($data['settings'] as $setting_key => $setting) {
        //now grab code that you want to move from view and put it here ;)
        $data['settings'][$setting_key]['format_start_date'] = date('d/m/Y', strtotime($setting['start_date']));
        $data['settings'][$setting_key]['format_end_date'] = date('d/m/Y', strtotime($setting['end_date']));
        $data['settings'][$setting_key]['cal_date'] = explode('/', date('j/M', strtotime($setting['start_date'])));

    }

    $this->load->view('trainings_list_view',$data);
}
现在,您可以编辑视图文件了,如果设置了$settings,您就不需要检查它,因为我们在controller by if/else语句中处理了它

<?php foreach ($settings as $item): ?>
    <div class='evlist'>
        <div class='evdate'>
            <span class='day'><?=$item['cal_date'][0];?></span>
            <span class='month'><?=$item['cal_date'][1];?></span>
        </div>
        <div class='evdesc'>
            <div class='thumb'>
                <a href='<?=base_url();?>trainings/view_training/id=<?=$item['id'];?>'>
                    <img src='<?=base_url();?><?=$item['img_path'];?>' width='113' height='82' alt='' />
                </a>
            </div>
            <div class='desc'>
                <h4 class='bold'>
                <a href='<?=base_url();?>trainings/view_training/id=<?=$item['id'];?>'>
                    <?=$item['name_ru'];?>
                </a></h4>
                <p><?=$item['short_desc_ru'];?></p>
                <div class='evdet'>
                    <span>Сроки проведения: <?=$item['format_start_date'];?> - <?=$item['format_end_date'];?> | </span>
                    <a href='<?=base_url();?>trainings/view_training/id=<?=$item['id'];?>' class='more txthover'>Read More</a>
                </div>
            </div>
        </div>
    </div>
<?php endforeach;?>

Сроки проведения: - |
请注意,base\u url采用参数,因此您可以通过以下方式使代码更简洁:
,还请确保在每个“foreach”之前检查是否可以循环通过对象/数组so
if(空($settings))…
基本上这就是我能添加的所有内容。谢谢你,但我最感兴趣的是如何将这部分从视图移动到控制器或模型:
我真的需要在使用MVC时这样做吗?我明白了问题所在。我很快会给你一个答案。哇!看起来就像我希望的那样!我今晚要测试它,但我确信它会成功的rk.我唯一怀疑的是这一行:
$data['settings'][$setting_key]['cal_date']=explode('/',$format____date);
。我明天会评论它是否有效。很抱歉,我没有足够的声誉来投票支持你的答案。非常感谢!没问题,如果有效,就接受答案吧,如果不行,我们会找到答案的,有一个好的答案。所以:)开始日期和结束日期显示正确,但我在格式和日期方面遇到了一些问题。首先,我有一个php通知:
消息:未定义变量:format\u-cal\u-date
。这是肯定的,因为我们没有变量
$format\u-cal\u-date
。我一整天都试着自己把它改成我们需要的数组有,但仍然没有办法:(顺便问一下,把你的解决方案改成:
$val['start_date']=date('d/m/Y',strotime('val['start_date']);
而不是
$data['settings'][$setting_key]['format_start_date']=date('d/m/Y',strotime('start_date']);
?这行很神奇:
$data['settings'][$setting_key]['cal_date']=explode('/',date('j/M',strotime($setting['start_date']));
我不知道我可以这样做。非常感谢!!!你能更新我在代码中的更改以便每个人都能看到正常工作的脚本吗?是的,你可以按你的意愿嵌套函数:)顺便说一句:它总是像你写的那样,不需要编辑。
<?php foreach ($settings as $item): ?>
    <div class='evlist'>
        <div class='evdate'>
            <span class='day'><?=$item['cal_date'][0];?></span>
            <span class='month'><?=$item['cal_date'][1];?></span>
        </div>
        <div class='evdesc'>
            <div class='thumb'>
                <a href='<?=base_url();?>trainings/view_training/id=<?=$item['id'];?>'>
                    <img src='<?=base_url();?><?=$item['img_path'];?>' width='113' height='82' alt='' />
                </a>
            </div>
            <div class='desc'>
                <h4 class='bold'>
                <a href='<?=base_url();?>trainings/view_training/id=<?=$item['id'];?>'>
                    <?=$item['name_ru'];?>
                </a></h4>
                <p><?=$item['short_desc_ru'];?></p>
                <div class='evdet'>
                    <span>Сроки проведения: <?=$item['format_start_date'];?> - <?=$item['format_end_date'];?> | </span>
                    <a href='<?=base_url();?>trainings/view_training/id=<?=$item['id'];?>' class='more txthover'>Read More</a>
                </div>
            </div>
        </div>
    </div>
<?php endforeach;?>