Blame view

common/models/GallerySearch.php 3.41 KB
ddebd16b   Yarik   test
1
2
  <?php
  
a02e2fdb   Yarik   test
3
      namespace common\models;
ddebd16b   Yarik   test
4
  
a02e2fdb   Yarik   test
5
6
7
8
      use Yii;
      use yii\base\Model;
      use yii\data\ActiveDataProvider;
      use common\models\Gallery;
ddebd16b   Yarik   test
9
  
ddebd16b   Yarik   test
10
      /**
a02e2fdb   Yarik   test
11
       * GallerySearch represents the model behind the search form about `common\models\Gallery`.
ddebd16b   Yarik   test
12
       */
a02e2fdb   Yarik   test
13
      class GallerySearch extends Gallery
ddebd16b   Yarik   test
14
      {
ddebd16b   Yarik   test
15
  
4c9663e0   Yarik   test
16
17
          public $date_add_from;
          public $date_add_to;
a02e2fdb   Yarik   test
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
          /**
           * @inheritdoc
           */
          public function rules()
          {
              return [
                  [
                      [
                          'gallery_id',
                          'user_add_id',
                          'type',
                      ],
                      'integer',
                  ],
                  [
                      [
                          'name',
                          'date_add',
                          'cover',
                          'photo',
4c9663e0   Yarik   test
38
39
                          'date_add_from',
                          'date_add_to',
a02e2fdb   Yarik   test
40
41
42
                      ],
                      'safe',
                  ],
4c9663e0   Yarik   test
43
44
45
46
47
48
49
50
51
52
53
54
55
56
                  [
                      [
                          'date_add_from',
                      ],
                      'default',
                      'value' => date('Y-m-d', 0),
                  ],
                  [
                      [
                          'date_add_to',
                      ],
                      'default',
                      'value' => date('Y-m-d'),
                  ],
a02e2fdb   Yarik   test
57
58
              ];
          }
ddebd16b   Yarik   test
59
  
a02e2fdb   Yarik   test
60
61
62
63
64
65
66
67
          /**
           * @inheritdoc
           */
          public function scenarios()
          {
              // bypass scenarios() implementation in the parent class
              return Model::scenarios();
          }
ddebd16b   Yarik   test
68
  
a02e2fdb   Yarik   test
69
70
71
72
73
74
75
76
77
78
          /**
           * Creates data provider instance with search query applied
           *
           * @param array $params
           *
           * @return ActiveDataProvider
           */
          public function search($params)
          {
              $query = Gallery::find();
ddebd16b   Yarik   test
79
  
a02e2fdb   Yarik   test
80
              // add conditions that should always apply here
ddebd16b   Yarik   test
81
  
a02e2fdb   Yarik   test
82
83
84
              $dataProvider = new ActiveDataProvider([
                  'query' => $query,
              ]);
ddebd16b   Yarik   test
85
  
a02e2fdb   Yarik   test
86
              $this->load($params);
ddebd16b   Yarik   test
87
  
a02e2fdb   Yarik   test
88
89
90
91
92
              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;
              }
ddebd16b   Yarik   test
93
  
a02e2fdb   Yarik   test
94
95
96
              $query->andWhere([
                  'user_id' => \Yii::$app->user->getId(),
              ]);
ddebd16b   Yarik   test
97
  
a02e2fdb   Yarik   test
98
99
100
101
102
103
104
105
106
              // grid filtering conditions
              $query->andFilterWhere([
                  'gallery_id' => $this->gallery_id,
                  'date_add' => $this->date_add,
                  'user_add_id' => $this->user_add_id,
                  'type' => $this->type,
              ]);
  
              $query->andFilterWhere([
4c9663e0   Yarik   test
107
108
109
                  'between',
                  'date_add',
                  $this->date_add_from,
76a1b0fe   Yarik   test
110
                  (new \DateTime($this->date_add_to))->modify('+1 day')->format('Y-m-d')
4c9663e0   Yarik   test
111
112
113
              ]);
  
              $query->andFilterWhere([
a02e2fdb   Yarik   test
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
                  'like',
                  'name',
                  $this->name,
              ])
                    ->andFilterWhere([
                        'like',
                        'cover',
                        $this->cover,
                    ])
                    ->andFilterWhere([
                        'like',
                        'photo',
                        $this->photo,
                    ]);
  
              return $dataProvider;
          }
ddebd16b   Yarik   test
131
      }