Model_Crud クラス

はじめに

データベース操作のほとんどは基本的な CRUD (Create Retrieve Update Delete) 操作に落ち着くことになる。 Model_Crud クラスは標準的な方法でその機能を提供します。このクラスは以下をサポートします:

最初のモデル

Model_Crud クラスを利用するために、\Model_Crud を継承したクラスを作ります。例:

<?php

class Model_Users extends \Model_Crud
{
	// 利用したいテーブル名をセット
	protected static $_table_name = 'users';
}

これで動作する基本的なモデルになりました。

設定

モデルの設定はいくつかのパラメータによって行われます:

パラメータ デフォルト 説明
$_table_name string 必須 利用するテーブル。
protected static $_table_name = 'table';
$_primary_key string
'id'
テーブルの id フィールド名。
protected static $_primary_key = 'custom_id';
$_rules array なし 入力値のバリデーションルール
protected static $_rules = array(
	'name' => 'required',
	'email' => 'required|valid_email',
);
$_labels array なし バリデーションのラベル。
protected static $_labels = array(
	'name' => 'Your Name',
	'email' => 'Email Address',
);
$_properties array なし 更新/保存に使うカラム名。
protected static $_properties = array(
	'id',
	'name',
	'age',
	'birth_date',
	'gender',
);
$_mass_whitelist array なし 以下でセットすることを許可するカラムの配列:
__construct 、
::forge
->set()
protected static $_mass_whitelist = array(
	'first_name',
	'last_name',
	'age',
);
$_mass_blacklist array なし 以下でセットすることを許可しないカラムの配列: __construct 、 ::forge と ->set() メソッド。
protected static $_mass_blacklist = array(
	'password',
	'is_admin',
);

$_mass_whitelist はプロパティの一斉割り当てをするときに許可する追加のセキュリティ機構です。 __construct::forge->set を 使った時にだけ動作することに注意してください。

$_connection string なし データベースコネクションを使う、またはマスター/スレーブの読み込みに使うコネクション。設定しない場合は、DB 設定がデフォルトで使用されます。
protected static $_connection = null;
$_write_connection string なし マスター/スレーブへの書き込みで使用するデータベースコネクション。
protected static $_write_connection = 'master';
$_defaults array なし デフォルト値の配列
protected static $_defaults = array(
	'field' => 'value',
	'other_field' => 'other value',
);
$_created_at string なし 'created_at' のフィールド名。$_mysql_timestamp に true をセットすると UNIX タイムスタンプの代わりに、MySQL のタイムスタンプを使用します。
protected static $_created_at = 'created_at';
$_updated_at string なし 'updated_at' のフィールド名。$_mysql_timestamp に true をセットすると UNIX タイムスタンプの代わりに、MySQL のタイムスタンプを使用します。
protected static $_updated_at = 'modified_at';
$_mysql_timestamp boolean なし true にセットすると UNIX タイムスタンプの代わりに MySQL のタイムスタンプが $_created_at$_updated_at のフィールドに入ります。
protected static $_mysql_timestamp = true;