Example #1
0
 /**
  * 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());
         }
     }
 }