Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace backend\models;
- use yii\base\Model;
- use yii\data\ActiveDataProvider;
- use backend\models\Product;
- /**
- * ProductSearch represents the model behind the search form of `backend\models\Product`.
- */
- class ProductSearch extends Product
- {
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['id', 'status', 'hit', 'new', 'sale', 'category_id', 'meta_title'], 'integer'],
- [['name', 'description', 'image', 'meta_keyword', 'meta_description'], 'safe'],
- [['price_roz', 'price_opt'], 'number'],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function scenarios()
- {
- // bypass scenarios() implementation in the parent class
- return Model::scenarios();
- }
- /**
- * Creates data provider instance with search query applied
- *
- * @param array $params
- *
- * @return ActiveDataProvider
- */
- public function search($params)
- {
- $query = Product::find();
- // add conditions that should always apply here
- $dataProvider = new ActiveDataProvider([
- 'query' => $query,
- ]);
- $this->load($params);
- if (!$this->validate()) {
- // uncomment the following line if you do not want to return any records when validation fails
- // $query->where('0=1');
- return $dataProvider;
- }
- // grid filtering conditions
- $query->andFilterWhere([
- 'id' => $this->id,
- 'status' => $this->status,
- 'price_roz' => $this->price_roz,
- 'price_opt' => $this->price_opt,
- 'hit' => $this->hit,
- 'new' => $this->new,
- 'sale' => $this->sale,
- 'category_id' => $this->category_id,
- 'meta_title' => $this->meta_title,
- ]);
- $query->andFilterWhere(['like', 'name', $this->name])
- ->andFilterWhere(['like', 'description', $this->description])
- ->andFilterWhere(['like', 'image', $this->image])
- ->andFilterWhere(['like', 'meta_keyword', $this->meta_keyword])
- ->andFilterWhere(['like', 'meta_description', $this->meta_description]);
- return $dataProvider;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement