CodeigniterでmodelとDBを使って見る
Codeigniterで基本のMVCしてみる
前回はCodeigniterのcontrollerとviewの基本を使ってみた 今回はmodelとDBを用いたMVCの流れを一連でやってみました。
- まず以下のdatabaseファイルに情報を入力する
- application/config/database.php
$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'name', 'password' => 'password', 'database' => 'database_name', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );
Modelの書き方
- 上記の情報を入れたらデータベースに接続可能であるかmodelでチェックしてみる。
- application/models/Model.php
class Model extends CI_Model { function __construct(){ parent::__construct(); $this->load->database(); } function getData($page){ $query = $this->db->get("poem"); return $query->result(); } }
まずapplication/models配下にModel.phpを作成する。 コンストラクタ内でデータベースに接続できているか確認する。
getData関数を作成し$queryを作成する この$this->db->get()でpoemテーブルの中身を全件取得することができる。
Controllerにてmodelデータ読み込み
class After extends CI_Controller { public function index() { $this->load->model("Model"); $data['result'] = $this->Model->getData("poem"); $this->load->view("after", $data); } }
Model.phpを読み込んでgetData関数にてpoemテーブルの情報を配列に格納し それをafter.phpのviewに値を渡す。
view側では以下のようにデータを取得する。
viewにmodelで取得したデータを表示させる
<body> <?php foreach ($result as $results): ?> <p><?php echo $results->poem; ?></p> <?php endforeach; ?> </body>
$resultをforeachで回して取得したデータがstdClass型なので アロー記号でカラムを指定して中身を表示させると 以下のようにデータが取得できていることがわかります。
Codeigniterの基本動作をしていきましたが難しくなくコードが書きやすく分かりやすいです。次は何かしらサイトを作っていけたらと思います。