Orm
ORMはオブジェクト
関係マッピングの略です。 これは、2つのことを行います: オブジェクトにデータベースのテーブルの行をマップし、
それはあなたがそれらのオブジェクト間の関係を確立することができます。
それは
Active Record パターンに従いますが、 他のシステムに影響も受けます。
リレーション: Belongs To
そのテーブルに保持関係の主キーを持つ、1関連オブジェクトに属します。 これは、HasOneまたは HasMany関係の反対側です。
例
Model_Postと、それに属しているModel_Commentがあるとしましょう。 (このとき Model_Post に対して comments は1対多の関係にあります) Model_PostのIDは、独自のテーブルで Model_Commentインスタンスに保存されます。 これは、commentsテーブルは カラム post_id(または、設定した他の何か)があることを意味します。 あなたが既定値を維持する場合に必要な作業は、Model_Commentの静的プロパティの $_belongs_toに'post'を追加するだけです:
protected static $_belongs_to = array('post');
以下は Belongs To 関係を確立し、切断するための例です:
// 両方のメインと関連オブジェクトをnewする:
$comment = new Model_Comment();
$comment->post = new Model_Post();
$comment->save();
// 両方のメインと関連オブジェクトがすでに存在している
$comment = Model_Comment::find(6);
$comment->post = Model_Post::find(1);
$comment->save();
// 上に確立された関係を切断する。
$comment = Model_Comment::find(6);
$comment->post = null;
$comment->save();
デフォルト値を持つ完全な設定例
// postに属しているModel_Commentで
protected static $_belongs_to = array(
'post' => array(
'key_from' => 'post_id',
'model_to' => 'Model_Post',
'key_to' => 'id',
'cascade_save' => true,
'cascade_delete' => false,
)
);