2016-03-12 101 views
-2

对于CI我是新的,因为MVC我认为我的代码不好。Codeigniter个人将数据从控制器传递到模型

我的控制器:

public function index(){ 
    $this->data->report = $this->order_m->get_report(); 
    parent::_view('report/list',$this->data); 
} 

我的模型

public function get_report(){ 

//somecode 

if ($this->input->post('submit')){ 
    $start_date = $this->input->post('thn_start').'-'.$this->input->post('bln_start').'-01'; 
    $end_date = $this->input->post('thn_end').'-'.$this->input->post('bln_end').'-31';; 
} else { 
    $start_date = date('Y-m-d',strtotime("-62 day")); 
    $end_date = date('Y-m-d'); 
} 
$this->db->where('date_in BETWEEN "'. date('Y-m-d', strtotime($start_date)). '" and "'. date('Y-m-d', strtotime($end_date)).'"'); 
$this->db->order_by('id_order','desc'); 

//somecode 

} 

我怎样才能为MVC风格的代码?由于

+0

为什么不尝试阅读[文档](http://www.codeigniter.com/user_guide/overview/mvc.html)和下面的[教程](http://www.codeigniter.com/user_guide/tutorial /index.html)首先? – Sparky

回答

0

我会建议你把

//somecode 

if ($this->input->post('submit')){ 
    $start_date = $this->input->post('thn_start').'-'.$this->input->post('bln_start').'-01'; 
    $end_date = $this->input->post('thn_end').'-'.$this->input->post('bln_end').'-31';; 
} else { 
    $start_date = date('Y-m-d',strtotime("-62 day")); 
    $end_date = date('Y-m-d'); 
} 

在CONTROLER和传递,并通过$start_date$end_date到​​功能。 你将有你的代码,因为这:

控制器

public function index(){ 
    //somecode 

    if ($this->input->post('submit')){ 
     $start_date = $this->input->post('thn_start').'-'.$this->input->post('bln_start').'-01'; 
     $end_date = $this->input->post('thn_end').'-'.$this->input->post('bln_end').'-31';; 
    } else { 
     $start_date = date('Y-m-d',strtotime("-62 day")); 
     $end_date = date('Y-m-d'); 
    } 
    $data['report'] = $this->order_m->get_report($start_date,$end_date); 
    $this->load->view('report/list',$data,1); 
} 

型号

public function get_report($start_date,$end_date){ 

//somecode 
$this->db->where('date_in BETWEEN "'. date('Y-m-d', strtotime($start_date)). '" and "'. date('Y-m-d', strtotime($end_date)).'"'); 
$this->db->order_by('id_order','desc'); 

//somecode 

} 

你为什么不使用load->view

0

控制器:

$data = array(
'start' => $this->input->post('thn_start'), 
'end' => $this->input->post('thn_end') 
); 

$result = $this->your_model->get_report($data); // this sends data to model 
$this->load->view('report/list', $result); 

你在你的控制器获取表单信息,然后发送给模型进行一些计算或什么都并返回给控制器,并把它传递给你的看法。

我希望它能帮助

相关问题