0

私は今本当に混乱しています、そしてあなたが私が道を見つけるのを手伝ってくれることを願っています:)

私が2つのモデルを持っているとしましょう:

  • ユーザー
  • グループ

すべてのユーザーは1つ以上のグループの一部になることができ、すべてのグループは1つ以上のユーザーを持つことができます。どちらのモデルもORMで構築されています(私はKohana 3.2で開発していますが、フレームワークはここではそれほど重要ではないかもしれません)。

この問題は、ユーザーをグループに追加したいときに、ユーザーIDとグループIDしか持っていない場合に発生します。

$user = ORM::factory('user', $user_id);
$group = ORM::factory('group', $group_id);
$group->add('user', $user);
  • まず、IDでユーザーをロードする必要があります
  • 次に、IDでグループをロードする必要があります
  • 次に、ユーザーをグループに追加する必要があります

したがって、3つのdbリクエストが必要です。しかし、私は単一のリクエストで問題を解決したいと思います。

私はヘルパークラスを作成することを考えています:メソッド* add_user *受け入れ2パラメーター(group_id、user_id)を持つグループ、そしてこのメ​​ソッドでは、*groups_users*テーブルにレコードを挿入する単一のデータベースリクエストを作成して挿入しますグループ内のユーザー。

これのためのより良い方法は何ですか?

4

2 に答える 2

2

指定したIDによるユーザーとグループが存在することを確認する必要があるため、3 dbリクエストが必要です。ORM の方法により、コードが読みやすくなります。

于 2012-05-10T05:38:35.380 に答える
1

コハナユーザーです。これを行うだけで何が問題なのですか:

$group = ORM::factory('group');
$group->user_id = $user_id;
$group->group_id = $group_id;
try
{
    $group->save();
} catch(ORM_ValidationException e) {
    //deal with error
}

検証例外のスペルが間違っている可能性がありますが、おわかりいただけたでしょうか。

于 2012-05-10T05:53:12.563 に答える