Orm
ORMはオブジェクト
関係マッピングの略です。 これは、2つのことを行います: オブジェクトにデータベースのテーブルの行をマップし、
それはあなたがそれらのオブジェクト間の関係を確立することができます。
それは
Active Record パターンに従いますが、 他のシステムに影響も受けます。
リレーション: Has One
もう 1 つのモデルとの1対1の関係を指定します。 対象モデルは、 反比例の関係を実現するために現在のモデルへの参照"Belongs To" を含める必要があります。
例
モデル Model_User と、そして has_one 関係にある Model_Profile があるとします (そしてそれは次に、ユーザーに属しています)。Model_User の ID は、独自のテーブルで Model_Profile インスタンスに保存されます。 user テーブルは、プロファイルを言及ししていませんが profiles テーブルは、カラム user_id を(または、設定他の何か)があることを意味します。 あなたがこのデフォルトに従う場合に必要な作業は、Model_User の静的プロパティ $_has_one に 'profile' を追加することだけです。
protected static $_has_one = array('profile');
以下Has Oneの関係を確立し、切断するための例です:
// 両方のメインと関連オブジェクトをnewします:
$user = new Model_User();
$user->profile = new Model_Profile();
$user->save();
// 両方のメインと関連オブジェクトがすでに存在しています。
$user = Model_User::find(6);
$user->profile = Model_Profile::find(1);
$user->save();
// 上記の確立された関係を切断します。
$user = Model_User::find(6);
$user->profile = null;
$user->save();
デフォルト値を持つ完全な設定例
// 1つのprofileを持っているModel_User
protected static $_has_one = array(
'profile' => array(
'key_from' => 'id',
'model_to' => 'Model_Profile',
'key_to' => 'user_id',
'cascade_save' => true,
'cascade_delete' => false,
)
);