Blame view

common/models/BlogSearch.php 4.44 KB
eb7e82fb   Administrator   29.02.16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  <?php

  

      namespace common\models;

  

      use Yii;

      use yii\base\Model;

      use yii\bootstrap\ActiveForm;

      use yii\data\ActiveDataProvider;

      use common\models\Blog;

      use yii\db\ActiveQuery;

      use yii\db\ActiveRecord;

  

      /**

       * BlogSearch represents the model behind the search form about `common\models\Blog`.

       */

      class BlogSearch extends Blog

      {

  

          public $date_add_from;

          public $date_add_to;

          /**

           * @inheritdoc

           */

          public function rules()

          {

              return [

                  [

                      [

                          'blog_id',

                          'user_id',

                          'user_add_id',

                          'view_count',

                      ],

                      'integer',

                  ],

                  [

                      [

                          'name',

                          'link',

                          'date_add',

                          'description',

                          'cover',

                          'date_add_from',

                          'date_add_to',

                      ],

                      'safe',

                  ],

                  [

                      [

143979c5   Yarik   test
50
                          'date_add_to',

eb7e82fb   Administrator   29.02.16
51
                      ],

143979c5   Yarik   test
52
53
54
                      'compare',

                      'compareAttribute' => 'date_add_from',

                      'operator' => '>=',

eb7e82fb   Administrator   29.02.16
55
56
57
                  ],

                  [

                      [

143979c5   Yarik   test
58
                          'date_add_from',

eb7e82fb   Administrator   29.02.16
59
                      ],

143979c5   Yarik   test
60
61
62
                      'compare',

                      'compareValue' => date('Y-m-d'),

                      'operator' => '<=',

eb7e82fb   Administrator   29.02.16
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
                  ],

              ];

          }

  

          /**

           * @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 = Blog::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;

              }

  

              $query->andWhere([ 'user_id' => \Yii::$app->user->getId() ]);

  

              // grid filtering conditions

              $query->andFilterWhere([

                  'blog_id'     => $this->blog_id,

eb7e82fb   Administrator   29.02.16
106
107
108
109
                  'user_add_id' => $this->user_add_id,

                  'view_count'  => $this->view_count,

              ]);

  

143979c5   Yarik   test
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
              if(!empty($this->date_add_from) && !empty($this->date_add_to)) {

                  $query->andWhere([

                      'between',

                      'date_add',

                      $this->date_add_from,

                      (new \DateTime($this->date_add_to))->modify('+1 day')->format('Y-m-d'),

                  ]);

              } elseif(!empty($this->date_add_from)) {

                  $query->andWhere([

                      '>=',

                      'date_add',

                      $this->date_add_from,

                  ]);

              } elseif(!empty($this->date_add_to)) {

                  $query->andWhere([

                      '<=',

                      'date_add',

                      (new \DateTime($this->date_add_to))->modify('+1 day')->format('Y-m-d'),

                  ]);

              }

eb7e82fb   Administrator   29.02.16
130
131
132
  

              $query->andFilterWhere([

                  'like',

42931736   Yarik   test
133
134
                  'LOWER(name)',

                  mb_strtolower($this->name),

eb7e82fb   Administrator   29.02.16
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
              ])

                    ->andFilterWhere([

                        'like',

                        'description',

                        $this->description,

                    ])

                    ->andFilterWhere([

                        'like',

                        'cover',

                        $this->cover,

                    ]);

  

              return $dataProvider;

          }

  

          public function searchByUser($params)

          {

              $query = $this->search($params);

  

          }

      }