CodeIgniterのMVCモデル
CodeIgniterのMVCモデルの書き方をメインに書いています。
Controller
静的なページを作成するためのクラスを実装したコントローラを作成する。
作成するクラスは、system/core/Controller.php の CI_Controller クラスを継承させる。
引数にページの名前を取る。
そのページをロードするメソッドは、show()
class Pages extends CI_Controller { public function show($page = 'home') { } }
- クラスの継承
- オーバーライド:小クラスと親クラスで同じメソッドを使用した場合、コクタスが優先され、親クラスを上書きする。
メソッド
特殊な役割を持つメソッド
function __construct() { // 親コントローラクラスのコンストラクタを呼び出す parent::__construct(); }
- プライベートメソッド:_任意のメソッド名()
- URLから直接アクセスできない。
- 以下のような書き方で、デフォルトメソッドを経由して呼び出される。
function index()
{
echo $this->_private_method();
}
function _private_method()
{
echo 'プライベートメソッドです';
}
View
- 特徴
- Viewの読み込み
$this->load->view('ファイル名', データの連想配列 or オブジェクト)
<?php class Hello extends CI_Controller { // index()メソッドの中身>>'Hello World' public function index() { echo "Hello World"; } // about()メソッドの中身>>about.php public function about() { $this->load->view('about'); } } ?>
- ループ
- foreach構文を使って繰り返し処理を行う。
// Controller function index() { $data["title"] = "サンプル" $data["contents"] = array("りんご", "みかん") $this->load->view("ファイル名", $data); }
<title><?=$title?></title> . . . <ul> <?php foreach($contents as $item):?> <li><?=$item;?></li> <?php endforeach;?> </ul>
Model
- Modelの書き方
<?php class Model_name extends CI_Model { public function __construct() { parent::__construct(); } } ?>
- Modelの読み込み
- 読み込み
// /system/application/models/read/read.phpを読み込みたいとき $this->load->model('read/read');
- メソッドの実行
$this->read->function();