saveCategories() public method

Устанавливает дополнительные категории товара
public saveCategories ( array $categoriesId ) : boolean
$categoriesId array - список id категорий
return boolean
Example #1
0
 /**
  * @return null|Product
  * @throws CDbException
  */
 public function copy()
 {
     $transaction = Yii::app()->getDb()->beginTransaction();
     $model = new Product();
     try {
         $model->attributes = $this->attributes;
         $model->image = null;
         $model->slug = null;
         $similarNamesCount = Yii::app()->getDb()->createCommand()->select('count(*)')->from($this->tableName())->where("name like :name", [':name' => $this->name . ' [%]'])->queryScalar();
         $model->name = $this->name . ' [' . ($similarNamesCount + 1) . ']';
         if ($eavAttributes = $this->getEavAttributes()) {
             $model->setTypeAttributes($eavAttributes);
         }
         if ($variants = $this->variants) {
             $variantAttributes = [];
             foreach ($variants as $variant) {
                 $variantAttributes[] = $variant->getAttributes(['attribute_id', 'attribute_value', 'amount', 'type', 'sku']);
             }
             $model->setProductVariants($variantAttributes);
         }
         if ($model->save()) {
             if ($categories = $this->categories) {
                 $categoriesIds = [];
                 foreach ($categories as $category) {
                     $categoriesIds[] = $category->id;
                 }
                 $model->saveCategories($categoriesIds);
             }
         }
         $transaction->commit();
         return $model;
     } catch (Exception $e) {
         $transaction->rollback();
     }
     return null;
 }