|  |  |  | <?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;
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | }
 |