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,
)
);