【发布时间】:2014-04-14 14:53:26
【问题描述】:
我正在使用codeigniter 2.1.4 和datamapper orm。我知道如何save relations 到一个对象,我知道如何delete them。
在这种情况下,我有一个多对多关系,我想用表单中的新值对其进行更新。现在我可以用它来保存它们,效果很好:
$ousergroupright = new Usergroupright;
$usergrouprights = $ousergroupright->where_in('id', $this->input->post('usergrouprights'))->get();
$ousergroup = new Usergroup;
$ousergroup->get_by_id($id);
$ousergroup->save($usergrouprights->all);
但这不会删除我在表单中“未选中”的记录。我需要删除我不想再关联的对象。最好的方法是什么(不使用自定义查询)?
在保存之前使用$ousergroup->where_not_in() 进行上述查询对我来说似乎有点过头了(为什么要查询数据库并构建对象只是 来删除关系?):
$ousergroupright = new Usergroupright;
$usergrouprights = $ousergroupright->where_not_in('id', $this->input->post('usergrouprights'))->get();
$ousergroup = new Usergroup;
$ousergroup->get_by_id($id);
$ousergroup->delete($usergrouprights->all);
有什么想法吗?
【问题讨论】:
标签: codeigniter codeigniter-datamapper