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

но модель не вставляя значение $ постдатировать к базе данных. Вставляет значение по умолчанию, равное 20160824, где, когда эхо в контроллере показывает значение, которое передается как параметр, т.е. (правильное) значение, которое я хочу вставить в базу данных.

+0

Тип данных column_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 Column 'room_date' не может быть пустым INSERT INTO 'news' (' title', 'slug',' Text', 'room_date') VALUES ('просто для удовольствия »,„просто для развлечения“,„Lijo“, NULL) Имя файла: C: /wamp/www/system/database/DB_driver.php Порядковый номер: 691 –

+0

Это означает, что вы не получаете значение '$ postdate' внутри вашего контроллера. Вы можете проверить это? – SanketR

+0

, когда он повторяет внутри контроллера, он отбирает правильное значение –

Смежные вопросы