/** * Execute remove_items_query and add_items_query to persist the colleciton to the datbaase * @param Jam_Model $model * @param Jam_Array_Association $collection */ public function save(Jam_Model $model, Jam_Array_Association $collection) { if ($old_ids = array_values(array_diff($collection->original_ids(), $collection->ids()))) { $query = $this->remove_items_query($model, $old_ids); if ($query) { $query->execute(Jam::meta($this->model)->db()); } } if ($new_ids = array_values(array_diff($collection->ids(), $collection->original_ids()))) { $query = $this->add_items_query($model, $new_ids); if ($query) { $query->execute(Jam::meta($this->model)->db()); } } }