我现在真的很困惑,我希望你能帮助我找到方式:)
假设我有2个型号:
每个用户都可以成为一个或多个组的一部分,每个组都可以拥有一个或多个用户。 这两个模型都是用ORM构建的(我在Kohana 3.2中开发,但框架在这里可能并不那么重要)。
当我想将用户添加到群组时,问题出现了,我只有用户ID和群组ID 。
$user = ORM::factory('user', $user_id);
$group = ORM::factory('group', $group_id);
$group->add('user', $user);
所以我应该有3个db请求。但我想通过单一请求来解决问题。
我正在考虑创建一个帮助器类: group 有一个方法* add_user * acception 2参数(group_id,user_id),在这个方法中我将发出一个数据库请求来插入一个记录在* groups_users *表中,以将用户插入组中。
有什么更好的方法呢?
答案 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
}
我可能拼错了验证例外,但你明白了。