2012-05-10 51 views
0

我真的很困惑的時刻,我希望你能幫助我找到的方式 :)適用機型Helper類

比方說,我有2種型號:

  • 用戶

每個用戶可以是一個或多個組的一部分,每個組可以有一個或多個用戶。 這兩個模型都是用ORM構建的(我在Kohana 3.2中開發,但框架在這裏可能並不那麼重要)。

問題出現在我想將用戶添加到組中時,並且我只有用戶標識和組標識

$user = ORM::factory('user', $user_id); 
$group = ORM::factory('group', $group_id); 
$group->add('user', $user); 
  • 首先我應該ID
  • 其次加載用戶我應該ID載入組
  • 那我應該將用戶添加到組

所以我應該有3分貝請求。但我想用單一請求來解決問題。

我正在考慮創建一個輔助類:具有方法 * ADD_USER *驗收規範2個參數(GROUP_ID,USER_ID),並在此方法中,我會做一個單一的數據庫請求中插入一條記錄* groups_users * table,將用戶插入到組中。

這是什麼更好的方法?

回答

2

3分貝請求是必要的,因爲你應該確保用戶和分組給予id確實存在。 ORM方式使代碼更具可讀性。

1

Im a Kohana user。出了什麼問題只是在做這樣的:

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

我可能拼錯驗證例外,但你的想法。