/** * Selects product filters for category * * @param integer $id * @param integer $languageId * @param integer $categoryId * @return mixed * @throws Exception * @throws ForbiddenHttpException */ public function actionSelectFilters($id = null, $languageId = null, $categoryId = null) { if (!empty($categoryId)) { $category = Category::findOne($categoryId); $filters = Filter::find()->where(['category_id' => $category->id])->all(); $filter = !empty($id) ? Filter::findOne($id) : new Filter(); } else { throw new Exception('You can not add filter before saving category.'); } if (Yii::$app->request->isPost) { $filter->load(Yii::$app->request->post()); if ($filter->validate()) { $filter->category_id = $category->id; $filter->save(); Yii::$app->getSession()->setFlash('success', 'Data were successfully modified.'); return $this->redirect(Yii::$app->request->referrer); } } return $this->render('save', ['category' => $category, 'languageId' => $languageId, 'selectedLanguage' => Language::findOne($languageId), 'languages' => Language::findAll(['active' => true]), 'viewName' => 'select-filters', 'params' => ['category' => $category, 'filters' => $filters, 'newFilter' => new Filter(), 'languageId' => $languageId]]); }