模型的帮助程序类


Helper classes for models

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

假设我有 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* 表中插入记录,以将用户插入组中。

有什么

更好的方法呢?

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

我是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
}

我可能拼错了验证异常,但你明白了。