[ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['post'], ], ], ]; } /** * Lists all DetailsDescription models. * @return mixed */ public function actionIndex() { $searchModel = new DetailsDescriptionSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } /** * Displays a single DetailsDescription model. * @param string $name * @param string $brand * @return mixed */ public function actionView($name, $brand) { $criteria_model = new DetailsCriteria(); $query = DetailsCriteria::find()->where( ['name' => $name, 'brand' => $brand] ); $count = $query->count('*'); $dataProvider = new ActiveDataProvider([ 'query' => $query, 'pagination' => false, ]); return $this->render('view', [ 'model' => $this->findModel($name, $brand), 'criteria_model' => $criteria_model, 'dataProvider' => $dataProvider, 'count' => $count, ]); } public function actionCreateCriteria() { $criteria_model = new DetailsCriteria(); if ( $criteria_model->load( Yii::$app->request->post() ) && $criteria_model->save() ) { return $this->redirect(['view', 'name' => $criteria_model->name, 'brand' => $criteria_model->brand]); } else { throw new HttpException('Не удалось записать характеристики в базу данных'); } } public function actionDeleteCriteria() { $params = Yii::$app->request->get(); $criteria_model = $this->findCriteriaModel( $params ); if ( $criteria_model->delete() ) { return $this->redirect(['view', 'name' => $params['name'], 'brand' => $params['brand']]); } else { throw new HttpException('Не удалось удалить характеристики из базы данных'); } } /** * Finds the DetailsDescription model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param string $name * @param string $brand * @return DetailsDescription the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($name, $brand) { if (($model = DetailsDescription::findOne(['name' => $name, 'brand' => $brand])) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } protected function findCriteriaModel( $params ) { if ( isset($params['name']) && isset($params['brand']) && isset($params['key']) && ($model = DetailsCriteria::findOne(['name' => $params['name'], 'brand' => $params['brand'], 'key' => $params['key']])) !== null ) { return $model; } else { throw new NotFoundHttpException('Запрашиваемая характеристика не существует.'); } } }