public static function saveMetaValue($key, $value, $object, $create = true) { if ($create) { $object_meta = new ObjectMeta(); $object_meta->meta_key = $key; $object_meta->meta_value = $value; $object_meta->meta_object_id = $object->object_id; $object_meta->save(); } else { $object_meta = ObjectMeta::model()->find('meta_key= :key and meta_object_id = :obj ', array(':key' => $key, ':obj' => $object->object_id)); if ($object_meta != null) { $object_meta->meta_value = $value; $object_meta->save(); } else { $object_meta = new ObjectMeta(); $object_meta->meta_key = $key; $object_meta->meta_value = $value; $object_meta->meta_object_id = $object->object_id; $object_meta->save(); } } }
protected function afterSave() { parent::afterSave(); if ($this->isNewRecord) { Object::saveMetaValue('price', $this->price, $this, true); } else { Object::saveMetaValue('price', $this->price, $this, false); } }