2.Error: After saving the listing there is no ability to uncheck the references 'Security', 'Comfort', 'Kitchen' etc.
Put the protected\modules\apartments\models\Apartment.php, method public function saveCategories() file out of the condition 'if(isset($_POST['category']))'
- Code: Select all
- $sql = 'DELETE FROM {{apartment_reference}} WHERE apartment_id="'.$this->id.'"';
 Yii::app()->db->createCommand($sql)->execute();
So you will have as a result:
- Code: Select all
- public function saveCategories(){
 $sql = 'DELETE FROM {{apartment_reference}} WHERE apartment_id="'.$this->id.'"';
 Yii::app()->db->createCommand($sql)->execute();
 
 if(isset($_POST['category'])){
 foreach($_POST['category'] as $catId => $value){
 foreach($value as $valId => $val){
 $sql = 'INSERT INTO {{apartment_reference}} (reference_id, reference_value_id, apartment_id)
 VALUES (:refId, :refValId, :apId) ';
 $command = Yii::app()->db->createCommand($sql);
 $command->bindValue(":refId", $catId, PDO::PARAM_INT);
 $command->bindValue(":refValId", $valId, PDO::PARAM_INT);
 $command->bindValue(":apId", $this->id, PDO::PARAM_INT);
 $command->execute();
 }
 }
 }
 }