public function beforeDelete() { //delete all in fret defined related records $model_fret = FretRefType::model()->findAll(); foreach ($model_fret as $fret) { $criteria = new CDbCriteria(); $criteria->compare($fret->fret_model_fixr_id_field, $this->fixr_id); $ref_model = new $fret->fret_model(); foreach ($ref_model->findAll($criteria) as $ref) { $ref->delete(); } } //delete related recrd from FddaDimData $criteria = new CDbCriteria(); $criteria->compare('fdda_fixr_id', $this->fixr_id); //$fdda = FddaDimData::model()->findAll($criteria); foreach (FddaDimData::model()->findAll($criteria) as $fdda) { $fdda->delete(); } return parent::beforeDelete(); }
/** * find existing model by fixr_id or create new model with setted fixr_id * @param int $fixr_id * @return \FddaDimData model */ public static function findByFixrId($fixr_id) { $criteria = new CDbCriteria(); $criteria->compare('fdda_fixr_id', $fixr_id); $model = FddaDimData::model()->find($criteria); if (empty($model)) { $model = new FddaDimData(); $model->fdda_fixr_id = $fixr_id; } return $model; }