/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model = Listing::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } // load categories $criteria = new CDbCriteria(); $criteria->condition = 'listing_id=:listing_id'; $criteria->select = 'category_id'; $criteria->params = array(':listing_id' => $id); $listingCategories = ListingCategory::model()->findAll($criteria); $categories = array(); foreach ($listingCategories as $category) { $categories[] = $category->category_id; } $model->p_categories = $categories; // load locations $criteria = new CDbCriteria(); $criteria->condition = 'listing_id=:listing_id'; $criteria->select = 'location_id'; $criteria->params = array(':listing_id' => $id); $listingLocations = ListingLocation::model()->findAll($criteria); $locations = array(); foreach ($listingLocations as $location) { $locations[] = $location->location_id; } $model->p_locations = $locations; return $model; }
function beforeDelete() { $criteria = new CDbCriteria(); $criteria->condition = 'listing_id=:listing_id'; $criteria->params = array(':listing_id' => $this->listing_id); ListingCategory::model()->deleteAll($criteria); ListingLocation::model()->deleteAll($criteria); Coupon::model()->deleteAll($criteria); // delete logo file if ($this->logo != '') { $imageFile = Yii::app()->user->getFullPathToImages(Yii::app()->params['listingLogo']) . $this->logo; @unlink($imageFile); } return parent::beforeDelete(); }
public function verifyDelete() { $locationId = $this->location_id; // check if it has some subcategories $locs = $this->findByAttributes(array('parent_location_id' => $locationId)); if ($locs) { throw new CHttpException(400, 'You cannot delete location that contains some sublocations!'); } $listings = ListingLocation::model()->findByAttributes(array('location_id' => $locationId)); if ($listings) { throw new CHttpException(400, 'You cannot delete location that contains some listings!'); } $pads = PremiumAdLocation::model()->findByAttributes(array('location_id' => $locationId)); if ($pads) { throw new CHttpException(400, 'You cannot delete location that contains some premium ads!'); } return true; }