<?php /** * Created by Error202 * Date: 04.06.2018 */ namespace backend\forms; use core\entities\Settings; use yii\base\Model; use yii\data\ActiveDataProvider; class SettingsSearch extends Settings { public $id; public $type; public $section; public $key; public $value; public $active; public function rules() { return [ [['id'], 'integer'], [['active'], 'boolean'], [['type', 'section', 'key', 'value'], 'safe'], ]; } /** * @return array */ public function scenarios() { // bypass scenarios() implementation in the parent class return Model::scenarios(); } /** * @param $params * * @return ActiveDataProvider */ public function search($params) { $query = Settings::find(); $dataProvider = new ActiveDataProvider( [ 'query' => $query, ] ); if (!($this->load($params) && $this->validate())) { $query->andFilterWhere( [ 'section' => $this->section, ] ); return $dataProvider; } $query->andFilterWhere( [ 'id' => $this->id, 'active' => $this->active, 'section' => $this->section, ] ); $query->andFilterWhere(['like', 'key', $this->key]) ->andFilterWhere(['like', 'value', $this->value]); return $dataProvider; } }