CodeIgniter

CodeIgniterのモデル

更新日:

CodeIgniterのモデルは、データベースに情報の書き込み/読み込み/削除/更新を行う部分を担当します。また、モデルで扱うデータソースは、データベースだけではなく、更新したりする処理を記述することも可能です。

モデルの命名規則

モデルファイルの命名規則は、クラス名の頭文字は大文字で始め、ファイル名は小文字でクラス名と同じ名前にし、『application/models』フォルダに保存します。modelsフォルダにはサブフォルダを作成して、階層管理することもできます。

モデルの読み込み

モデルを利用するには以下のようなメソッドを利用します。

$this->load->model(第一引数/モデルクラス名,第2引数/モデルの別名,第3引数/TRUE又は、データベース設定)

第1引数には、PHP拡張子(.php)を抜いたモデルクラス名を指定します。第2引数には、モデルの別名を指定します。オプションですので、利用しなくてもいいのですが、モデル名を分かり易い名前にする場合などに利用すれば便利だと思います。第3引数もオプションです。何も指定しない場合は『FALSE』が指定されます。『TRUE』をしていすると、データベースに自動接続します。また、第3引数には、データベース設定(連想配列)を渡すことができます。通常は、データベース設定ファイル『application/config/database.php』を使用してデータベースの初期化を行いますが、このオプションを使えばデータベース設定を個別に指定することができます。

モデルの自動読み込み

特定のモデルをシステム全体で使いたいときは、モデルを自動読み込みすると便利です。『application/confit/autoload.php』に読み込みたいモデル名を指定します。

CodeIgniterのモデルの使用例

それではモデルを使用したサンプルプログラムを作成してみましょう。モデル内に配列データを持たせ、コントローラからデータを読み出して表示するプログラムを作成します。『application/models』フォルダに『sample03_model.php』ファイルを作成し、以下のコードを入力します。

class Sample03_model extends CI_Model{
function __construct()
{
parent::__construct();
}
function get_data()
{
$test_data['佐藤栄作']='山口県' ;
$test_data['田中角栄']='新潟県';
$test_data['吉田茂']='東京都';
return $test_data;
}
}

前回も説明しましたが、コンストラクタとは、オブジェクト作成時に自動的に呼び出されるメソッドです。get_data()メソッドは、配列に代入した値を返すためのメソッドです。配列$test_dataに値を代入し、returnで値を返しています。

次にコントローラを作成します。『application/controllers』フォルダに以下のプログラムを入力します。

class Sample03 extends CI_Controller{
function index()
{
$this->load->model('sample03_model');
$test_data=$this->sample03_model->get_data();
foreach ($test_data as $souri=>$syusshin)
{
echo $souri.'  '.$syusshin.'出身<br>';
}
}
}

『$this->load->model()』メソッドで、『sample03_model』を読み込み、『$test_data』に『sample03_model』の『get_data()』を代入し、PHPの『foreach』構文で『$test_data(別名$souri)』=>$syusshinを配列の数だけ繰り返し表示しています。

それでは実際にブラウザで確認してみます。

本日はここまでにします。

-CodeIgniter
-

Copyright© WinRoad徒然草 , 2018 All Rights Reserved Powered by AFFINGER5.