模型的助手类

时间:2012-05-10 05:31:50

标签: php orm model kohana helper

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

假设我有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请求。但我想通过单一请求来解决问题。

我正在考虑创建一个帮助器类: group 有一个方法* add_user * acception 2参数(group_id,user_id),在这个方法中我将发出一个数据库请求来插入一个记录在* groups_users *表中,以将用户插入组中。

有什么更好的方法呢?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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
}

我可能拼错了验证例外,但你明白了。