[ 'class' => AccessBehavior::className(), 'rules' => [ 'site' => [ [ 'actions' => [ 'login', 'error', ], 'allow' => true, ], ], ], ], 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => [ 'POST' ], ], ], ]; } /** * Lists all SliderImage models. * * @param $slider_id Slider id * * @return mixed */ public function actionIndex($slider_id) { $searchModel = new SliderImageSearch(); $dataProvider = $searchModel->search($slider_id, Yii::$app->request->queryParams); return $this->render('index', [ 'slider_id' => $slider_id, 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } /** * Displays a single SliderImage model. * * @param integer $id * @param $slider_id Slider id * * @return mixed */ public function actionView($slider_id, $id) { return $this->render('view', [ 'slider_id' => $slider_id, 'model' => $this->findModel($slider_id, $id), ]); } /** * Creates a new SliderImage model. * If creation is successful, the browser will be redirected to the 'view' page. * * @param $slider_id Slider id * * @return mixed */ public function actionCreate($slider_id) { $model = new SliderImage(); $model_langs = $model->generateLangs(); if($model->load(Yii::$app->request->post())) { $model->loadLangs(\Yii::$app->request, $model_langs); $model->slider_id = $slider_id; if(( $image = UploadedFile::getInstance($model, 'image') )) { $model->image = $image->name; } if($model->save() && $image) { $imgDir = Yii::getAlias('@storage/slider/'); if(!is_dir($imgDir)) { mkdir($imgDir, 0755, true); } $image->saveAs(Yii::getAlias('@storage/slider/' . $image->name)); } if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { return $this->redirect([ 'view', 'slider_id' => $slider_id, 'id' => $model->slider_image_id, ]); } else { return $this->redirect([ 'update', 'slider_id' => $slider_id, 'id' => $model->slider_image_id, ]); } } else { $slider = Slider::findOne($slider_id); return $this->render('create', [ 'slider_id' => $slider_id, 'model' => $model, 'model_langs' => $model_langs, 'slider' => $slider, ]); } } /** * Updates an existing SliderImage model. * If update is successful, the browser will be redirected to the 'view' page. * * @param $slider_id Slider id * @param integer $id * * @return mixed */ public function actionUpdate($slider_id, $id) { $model = $this->findModel($slider_id, $id); $model_langs = $model->generateLangs(); if($model->load(Yii::$app->request->post())) { $model->loadLangs(\Yii::$app->request, $model_langs); if(( $image = UploadedFile::getInstance($model, 'image') )) { $model->image = $image->name; } if(!$model->image) { $model->image = $model->getOldAttribute('image'); } if($model->save() && $image) { $imgDir = Yii::getAlias('@storage/slider/'); if(!is_dir($imgDir)) { mkdir($imgDir, 0755, true); } $image->saveAs(Yii::getAlias('@storage/slider/' . $image->name)); } if($model->linkLangs($model_langs) && $model->saveLangs($model_langs)) { return $this->redirect([ 'view', 'slider_id' => $slider_id, 'id' => $model->slider_image_id, ]); } } $slider = Slider::findOne($slider_id); return $this->render('update', [ 'model' => $model, 'model_langs' => $model_langs, 'slider_id' => $slider_id, 'slider' => $slider, ]); } /** * Deletes an existing SliderImage model. * If deletion is successful, the browser will be redirected to the 'index' page. * * @param $slider_id Slider id * @param integer $id * * @return mixed */ public function actionDelete($slider_id, $id) { $this->findModel($slider_id, $id) ->delete(); return $this->redirect([ 'index', 'slider_id' => $slider_id, ]); } /** * Finds the SliderImage model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * * @param $slider_id Slider id * @param integer $id * * @return SliderImage the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($slider_id, $id) { /** * @var SliderImage $model */ if(( $model = SliderImage::find() ->where([ 'slider_image_id' => $id, 'slider_id' => $slider_id, ]) ->one() ) !== NULL ) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } }