[ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['POST'], ], ], ]; } /** * Lists all TaxOption models. * @return mixed */ public function actionIndex() { $searchModel = new TaxOptionSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); $group = TaxGroup::findOne(Yii::$app->request->queryParams['group']); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'group' => $group, ]); } /** * Displays a single TaxOption model. * @param string $id * @return mixed */ public function actionView($id) { $model = $this->findModel($id); $group = TaxGroup::findOne($model->tax_group_id); return $this->render('view', [ 'model' => $model, 'group' => $group, ]); } /** * Creates a new TaxOption model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new TaxOption(); $group = TaxGroup::findOne(Yii::$app->request->queryParams['group']); if ($model->load(Yii::$app->request->post())) { if ( ($image = UploadedFile::getInstance($model, 'image')) ) { $model->image = $image->name; } if ($model->save() && $image) { $imgDir = Yii::getAlias('@storage/tax_option/'); if(!is_dir($imgDir)) { mkdir($imgDir, 0755, true); } $image->saveAs(Yii::getAlias('@storage/tax_option/' . $image->name)); } $model->save(); return is_null(Yii::$app->request->post('create_and_new')) ? $this->redirect(['view', 'id' => $model->tax_option_id]) : $this->redirect(array_merge(['create'], Yii::$app->request->queryParams)); } else { $model->tax_group_id = $group->tax_group_id; if (!empty(Yii::$app->request->queryParams['parent'])) { $model->parent_id = Yii::$app->request->queryParams['parent']; } return $this->render('create', [ 'model' => $model, 'group' => $group, ]); } } /** * Updates an existing TaxOption model. * If update is successful, the browser will be redirected to the 'view' page. * @param string $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $group = TaxGroup::findOne($model->tax_group_id); if ($model->load(Yii::$app->request->post())) { if ( ($image = UploadedFile::getInstance($model, 'image')) ) { $model->image = $image->name; } if ($model->save() && $image) { $imgDir = Yii::getAlias('@storage/tax_option/'); if(!is_dir($imgDir)) { mkdir($imgDir, 0755, true); } $image->saveAs(Yii::getAlias('@storage/tax_option/' . $image->name)); } TaxOption::find()->rebuildMP($model->tax_group_id); return $this->redirect(['view', 'id' => $model->tax_option_id]); } else { return $this->render('update', [ 'model' => $model, 'group' => $group ]); } } /** * Deletes an existing TaxOption model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param string $id * @return mixed */ public function actionDelete($id) { $model = $this->findModel($id); $group_id = $model->tax_group_id; $model->delete(); return $this->redirect(['index', 'group' => $group_id]); } /** * Finds the TaxOption model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param string $id * @return TaxOption the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = TaxOption::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } }