Tutorial - Create news items

You now know how you can read data from a database using CodeIgnite, but you haven't written any information to the database yet. In this section you'll expand your news controller and model created earlier to include this functionality.

 Views

<h2>Create a news item</h2>

<?php echo validation_errors(); ?>

<?php echo form_open('news/create') ?> //validations in codeigniter.

    <label for="title">Title</label>
    <input type="input" name="title" /><br />

    <label for="text">Text</label>
    <textarea name="text"></textarea><br />
   
    <input type="submit" name="submit" value="Create news item" />

</form>


There are only two things here that probably look unfamiliar to you: the form_open() function and the validation_errors() function.

Controller

public function create()
{
 $this->load->helper('form');
 $this->load->library('form_validation');
 
 $data['title'] = 'Create a news item';
 
 $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('news/create');
  $this->load->view('templates/footer');
  
 }
 else
 {
  $this->news_model->set_news();
  $this->load->view('news/success');
 }
}
 

Model

public function set_news()
{
 $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')
 );
 
 return $this->db->insert('news', $data);
}