/** * @return \yii\db\ActiveQuery */ public function getShopFilters() { return $this->hasMany(Filter::className(), ['input_type' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getFilters() { return $this->hasMany(Filter::className(), ['category_id' => 'id']); }
/** * Deletes product filter from category * * @param integer $id * @return mixed * @throws ForbiddenHttpException */ public function actionDeleteFilter($id) { if (!empty($id)) { $filter = Filter::findOne($id); $filter->delete(); } return $this->redirect(Yii::$app->request->referrer); }
use bl\cms\shop\widgets\assets\ProductFilterAsset; use yii\bootstrap\ActiveForm; use yii\helpers\ArrayHelper; use yii\helpers\Html; ProductFilterAsset::register($this); ?> <?php $form = ActiveForm::begin(['action' => ['/shop/category/show', 'id' => $category->id], 'method' => 'get', 'options' => ['data-pjax' => true]]); ?> <?php foreach ($filters as $filter) { ?> <?php $newObject = Filter::getCategoryFilterValues($filter, $category->id); $inputId = $filter->inputType->id; $inputType = $filter->inputType->type; ?> <?php if ($inputId == 1 || $inputId == 2 || $inputId == 3) { ?> <?php echo $form->field($searchModel, $filter->type->column)->{$inputType}(ArrayHelper::map($newObject, 'id', $filter->type->displaying_column), ['prompt' => '', 'name' => $filter->type->column])->label(\Yii::t('shop', $filter->type->title)); ?> <?php } elseif ($inputId == 4) { ?> <?php