(下記の記事は、データベースの設定と、データベースの作成、テーブルの作成が終わっていることを前提としています)
以下のサンプルでは、以下のような URL にアクセスしたときに、books テーブルの内容をすべて読み出してリスト表示します。
http://localhost/books/show_all
<?php
class Books extends CI_Controller {
public function show_all() {
$this->load->model('books_model');
$data['books'] = $this->books->get_all();
$this->load->view('show_all', $data);
}
}
典型的な MVC での設計では、コントローラーがモデルクラスを使ってデータを取得し、描画をビューにまかせます。 上記の例でも、それに従っています。 まず、Books モデルを以下のようにロードしています。
$this->load->model('books_model');
Books_model モデルのロード後は、$this->books_model->method(); の形式で、Books_model クラスで定義されているメソッドを呼び出せるようになります。
ここでは、Books_model クラスの get_all() メソッドを使ってテーブルの前エントリを配列で取得し、ビュー (show_all.php) にそのデータを渡しています。
<?php
class Books_model extends CI_Model {
public function __construct() {
parent::__construct();
$this->load->database();
}
public function get_all() {
$q = $this->db->query('SELECT id, title FROM books');
return $q->result();
}
}
Books_model クラスでは、まず最初に、Database クラスをロードして、$this->db->xxxx() のようなメソッド呼び出しを行えるようにしています。
$this->load->database();
上記の例では Database クラスの query() メソッドを使用して、一番原始的な SQL クエリ呼び出しを行っています。
<html>
<body>
<ul>
<?php foreach($books as $book) : ?>
<li><?= $book->id ?> : <?= $book->title ?>
<?php endforeach; ?>
</ul>
</body>
</html>
show_all ビュー (show_all.php) では、コントローラーから受け取った books 配列の内容を foreach ループで列挙しています。