0

我现在真的很困惑,希望你能帮我找到方法:)

假设我有 2 个模型:

  • 用户
  • 团体

每个用户可以是一个或多个组的一部分,每个组可以有一个或多个用户。这两个模型都是用 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

3 db 请求是必要的,因为您应该确保提供 id 的用户和组确实存在。ORM 方式使代码更具可读性。

于 2012-05-10T05:38:35.380 回答
1

我是 Kohana 用户。这样做有什么问题:

$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 回答