/** * Создает DataProvider на основе переданных данных * @param $params - параметры * @return ActiveDataProvider */ public function search($params) { $query = AuthRule::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => $this::COUNT]]); $this->load($params); // Если валидация не пройдена, то ничего не выводить if (!$this->validate()) { $query->where('0=1'); return $dataProvider; } // Фильтрация $query->andFilterWhere(['created_at' => $this->created_at, 'updated_at' => $this->updated_at]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'data', $this->data]); return $dataProvider; }
<div class="col-lg-6"> <?php echo $form->field($model, 'description')->textarea(['rows' => 6]); ?> </div> <div class="col-lg-6"> <?php echo $form->field($model, 'data')->textarea(['rows' => 6]); ?> </div> </div> <div class="row"> <div class="col-lg-6"> <?php echo $form->field($model, 'rule_name')->widget(Select2::classname(), ['data' => AuthRule::getAll(), 'options' => ['placeholder' => ''], 'pluginOptions' => ['allowClear' => true]]); ?> </div> <div class="col-lg-6"> </div> </div> <div class="row"> <div class="col-lg-6"> <?php echo '<label class="control-label">' . Yii::t('user', 'Обладает допусками') . '</label>'; ?> <?php echo Select2::widget(['name' => 'AuthItem[children_array]', 'value' => array_keys($model->children_array), 'data' => AuthItem::getAll(), 'options' => ['multiple' => true], 'pluginOptions' => ['tags' => true]]); ?> </div>
/** * Правило, которому принадлежит допуск * @return \yii\db\ActiveQuery */ public function getRuleName() { return $this->hasOne(AuthRule::className(), ['name' => 'rule_name']); }
/** * Поиск модели правил по ID * @param string $id * @return AuthRule the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = AuthRule::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException(Yii::t('user', 'Запрашиваемая страница не найдена.')); } }