/** * Creates a new CarPart model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new CarPart(); $modelPrice = new Price(); $modelPrice->tax = 12; if (isset($_GET['size_id'], $_GET['damage_id'], $_GET['color_id'])) { $model->size_id = $_GET['size_id']; $model->color_id = $_GET['color_id']; $model->damage_id = $_GET['damage_id']; } if ($model->load(Yii::$app->request->post()) && $model->validate() && $modelPrice->load(Yii::$app->request->post()) && $modelPrice->validate()) { $transaction = $model->getDb()->beginTransaction(); try { if (!$modelPrice->save(false)) { throw new Exception(Yii::t('app', 'Error saving {model}: {msj}', ['model' => Yii::t('app', ucfirst($modelPrice->tableName())), 'msj' => print_r($modelPrice->getErrors(), true)]), 500); } $model->price_id = $modelPrice->id; if (!$model->save(false)) { throw new Exception(Yii::t('app', 'Error saving {model}: {msj}', ['model' => Yii::t('app', ucfirst($model->tableName())), 'msj' => print_r($model->getErrors(), true)]), 500); } $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); throw $e; } return $this->redirect(['index']); } else { $sizes = ArrayHelper::map(Size::find()->asArray()->all(), 'id', 'name'); $colors = ArrayHelper::map(Color::find()->asArray()->all(), 'id', 'name'); $damages = ArrayHelper::map(Damage::find()->asArray()->all(), 'id', 'name'); return $this->render('create', ['model' => $model, 'modelPrice' => $modelPrice, 'sizes' => $sizes, 'colors' => $colors, 'damages' => $damages]); } }
/** * Creates a new Item model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Item(); $modelPrice = new Price(); $modelPrice->tax = 12; if ($model->load(Yii::$app->request->post()) && $model->validate() && $modelPrice->load(Yii::$app->request->post()) && $modelPrice->validate()) { $transaction = $model->getDb()->beginTransaction(); try { if (!$model->save(false)) { throw new Exception(Yii::t('app', 'Error saving {model}: {msj}', ['model' => Yii::t('app', ucfirst($model->tableName())), 'msj' => print_r($model->getErrors(), true)]), 500); } if (!$modelPrice->save(false)) { throw new Exception(Yii::t('app', 'Error saving {model}: {msj}', ['model' => Yii::t('app', ucfirst($modelPrice->tableName())), 'msj' => print_r($modelPrice->getErrors(), true)]), 500); } $modelItemPrice = new ItemPrice(); $modelItemPrice->item_id = $model->id; $modelItemPrice->price_id = $modelPrice->id; if (!$modelItemPrice->save(false)) { throw new Exception(Yii::t('app', 'Error saving {model}: {msj}', ['model' => Yii::t('app', ucfirst($modelItemPrice->tableName())), 'msj' => print_r($modelItemPrice->getErrors(), true)]), 500); } $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); throw $e; } return $this->redirect(['index']); } else { return $this->render('create', ['model' => $model, 'modelPrice' => $modelPrice]); } }