Codeigniter3でブログサンプルを作成No.2
前回の続き。
データの登録処理を実装する。
まずモデルを作成。
application/models/Blog_model.php
<?php class Blog_model extends CI_Model { public function __construct() { $this->load->database(); } public function insert() { $data = array( 'title' => $this->input->post('title'), 'description' => $this->input->post('description'), 'updated_at' => null, ); return $this->db->insert('blog', $data); } }
updated_atはCURRENT_TIMESTAMPがないのでnullを登録することで現在日時を設定する。
次にコントローラを作成する。
application/controllers/Blog.php
<?php class Blog extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper('url', 'form'); $this->load->library('form_validation'); $this->load->model('Blog_model'); } public function add() { $validation = [ [ 'field' => 'title', 'label' => 'title', 'rules' => 'required|max_length[100]' ] ]; $this->form_validation->set_rules($validation); if ($this->form_validation->run('insert') === FALSE) { $this->load->view('blog/add'); } else { $this->Blog_model->insert(); redirect('blog/index'); } } }
ビューを作成する。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>add</title> </head> <body> <?php echo validation_errors(); ?> <?php echo form_open('blog/add'); ?> <h3>Title</h3> <input type="text" name="title" value="<?php echo set_value('title'); ?>" size="50" maxlength="100" /> <h3>Description</h3> <textarea name="description" rows="10" cols="50"><?php echo set_value('description'); ?></textarea> <div> <input type="submit" value="Submit" /> </div> </form> </body> </html>
titleのみバリデーションを追加した。
入力に問題がなければ登録をする。