Product::saveData PHP Method

saveData() public method

public saveData ( array $attributes, array $typeAttributes, array $variants, array $categories = [] ) : boolean
$attributes array
$typeAttributes array
$variants array
$categories array
return boolean
    public function saveData(array $attributes, array $typeAttributes, array $variants, array $categories = [])
    {
        $transaction = Yii::app()->getDb()->beginTransaction();
        try {
            $this->setAttributes($attributes);
            $this->setTypeAttributes($typeAttributes);
            if ($this->save()) {
                $this->saveVariants($variants);
                $this->saveCategories($categories);
                $this->saveTypeAttributes($typeAttributes);
                $transaction->commit();
                return true;
            }
            return false;
        } catch (Exception $e) {
            $transaction->rollback();
            return false;
        }
    }

Usage Example

 /**
  * Создает новую модель товара.
  * Если создание прошло успешно - перенаправляет на просмотр.
  */
 public function actionCreate()
 {
     $model = new Product();
     if (Yii::app()->getRequest()->getIsPostRequest() && Yii::app()->getRequest()->getPost('Product')) {
         $attributes = Yii::app()->getRequest()->getPost('Product');
         $typeAttributes = Yii::app()->getRequest()->getPost('Attribute', []);
         $variants = Yii::app()->getRequest()->getPost('ProductVariant', []);
         $categories = Yii::app()->getRequest()->getPost('categories', []);
         if ($model->saveData($attributes, $typeAttributes, $variants, $categories)) {
             $this->updateProductImages($model);
             Yii::app()->getUser()->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('StoreModule.store', 'Record was added!'));
             $this->redirect((array) Yii::app()->getRequest()->getPost('submit-type', ['create']));
         } else {
             Yii::app()->getUser()->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('StoreModule.store', 'Failed to save product!'));
         }
     }
     $this->render('create', ['model' => $model]);
 }
All Usage Examples Of Product::saveData