2016-09-11 3 views
2

を値を渡すことはできませんコントローラここは、ここでは、コントローラ機能CodeIgniterのに

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); 
} 

が、モデルが値$ POSTDATEを挿入されていませんデフォルトの値20160824を挿入しています。コントローラのエコーがパラメータとして渡された値を示している、つまり私はデータベースに挿入したい(正しい)値です。

+0

column_dateのデータ型は? –

+0

私はcodeignitorの初心者ですので、私は自分自身にcreate()フォームを送信していました。その問題を引き起こしました。解決済み! 1048 列 'room_date' 'news'(' title'、 'slug'、' text'、 'room_date')ちょうど楽しみのためのVALUES( 'INTO INSERT nullにすることはできません。 –

答えて

4

にあなたは、関数呼び出しでデフォルト値を与えることはありません。むしろ、関数の定義にデフォルト値を指定します。

SanketRが正しく質問に回答しました。私はそれを明確にしたいと思います。あなたのコントローラで

あなたは20160824$postdateの値を変更しています。これは予想される動作ではありません。これを変更 :これはためにデフォルト値を設定します

public function set_news($postdate = 20160824)

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

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

して、モデル内に機能ヘッドを変更その変数がある場合は $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

データベースエラーが エラー番号が発生しました'、' just-for-fun '、' lijo '、NULL) ファイル名:C:/wamp/www/system/database/DB_driver.php 行番号:691 –

+0

これは、 '$ postdate'をあなたのコントローラの中に入れてください。それを確認できますか? – SanketR

+0

コントローラの内部でエコーすると正しい値がエコーされます –

関連する問題