2016-09-11 58 views
2

,這裏是我的控制器代碼不能通過值控制器功能笨

public function create($postdate) 
    { 
     $this->load->helper('form'); 
     $this->load->library('form_validation'); 
     $this->load->helper('url'); 
     // $postdate = $this->uri->segment(3); 
     echo $postdate; 



     $data['title'] = 'Hey there!'; 


     $this->form_validation->set_rules('title', 'Title', 'required'); 
     $this->form_validation->set_rules('text', 'Text', 'required'); 

     if ($this->form_validation->run() === FALSE) 
     { 

      $this->load->view('templates/header', $data); 
      $this->load->view('pages/create',); 
      $this->load->view('templates/footer'); 

     } 
     else 
     { 
      $this->news_model->set_news($postdate = 20160824); 
      $this->load->view('pages/success'); 
     } 
} 

,這裏是我的模型代碼:

public function set_news($postdate) 
{ 
$this->load->helper('url'); 


$slug = url_title($this->input->post('title'), 'dash', TRUE); 
$data = array(
    'title' => $this->input->post('title'), 
    'slug' => $slug, 
    'text' => $this->input->post('text'), 
    'room_date' => $postdate 

); 

return $this->db->insert('news', $data); 
} 

但該模型沒有將價值$踵到數據庫。它插入的默認值是20160824,其中作爲控制器中的回顯顯示作爲參數傳遞的值,即我想要插入數據庫中的(正確的)值。

+0

列room_date的數據類型是? –

+0

我是codeignitor的新手,因此我提交表單來創建()本身。這導致了問題。解決方案。 –

回答

4

你不會在函數調用給出的默認值。而是在函數的定義中提供默認值。

SanketR已正確地解答了您的問題。我想說清楚。

在你的控制器:

您的$postdate值更改爲20160824。這不是預期的行爲。 更改此:

$this->news_model->set_news($postdate = 20160824);

$this->news_model->set_news($postdate);

而在你的模型,函數頭更改爲:

public function set_news($postdate = 20160824)

這將設置默認值如果該變量是,則爲$postdate沒有在控制器的函數調用中提供。

0

你做錯了。正確的方法是

public function set_news($postdate = 20160824) 
{ 
$this->load->helper('url'); 


$slug = url_title($this->input->post('title'), 'dash', TRUE); 
$data = array(
    'title' => $this->input->post('title'), 
    'slug' => $slug, 
    'text' => $this->input->post('text'), 
    'room_date' => $postdate 

); 

return $this->db->insert('news', $data); 
} 

而在你的控制器

$this->news_model->set_news($postdate);

+0

數據庫出錯 錯誤編號:1048 列 'room_date' 不能爲空 INSERT INTO'news'('title','slug','text','room_date')VALUES('只是爲了好玩','just-for-fun','lijo',NULL) 文件名:C:/wamp/www/system/database/DB_driver.php 行號:691 –

+0

這意味着你沒有收到控制器中的'$ postdate'。你能檢查它嗎? – SanketR

+0

當im在控制器內部回聲時,它迴響正確的值 –