codeigniter - Update (save & delete) relationship without using $related->get(); -
i'm using codeigniter 2.1.4 & datamapper orm. know how save relations object , know how delete them.
in case have many-to-many relation, want update new values form. can use save them works fine:
$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); but doesn't delete records "unchecked" in form. need delete objects don't want related anymore. best way (without using custom queries)?
a query above $ousergroup->where_not_in() before saving seems overkill me (why query database , build objects just delete relation?):
$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); any ideas?
there way delete objects don't want related anymore without need query database , build objects delete relation. can use utility function query run custom sql delete unrelated objects without needing perform database query, like:
// create usergroup object $u = new usergroup(); // custom sql query delete unrelated objects $sql = "delete usergrouprights usergroup.id = ? , id usergrouprights.id not in (?)"; // binding values $binds = array($idusergroup , $listofselecteditens); // run query populate user object results $u->query($sql); more datamapper query utility function http://datamapper.wanwizard.eu/pages/utility.html#query
Comments
Post a Comment