Esempio n. 1
0
 public function search($params)
 {
     $query = Music::find();
     $queryParams = Yii::$app->request->getQueryParams();
     $sort = trim(isset($queryParams['sort']) ? $queryParams['sort'] : 'update_time');
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ["{$sort}" => SORT_DESC]]]);
     /*自定义处理classify存在情况下的搜索*/
     if (isset($params['classify']) && !empty($params['classify'])) {
         $this->classify = trim(trim($params['classify']));
     } elseif (isset($params['tags']) && !empty($params['tags'])) {
         $this->tags = trim(trim($params['tags']));
     } else {
         if (!($this->load($params) && $this->validate())) {
             return $dataProvider;
         }
     }
     /*********END*************************/
     $query->andFilterWhere(['id' => $this->id, 'status' => $this->status, 'create_time' => $this->create_time, 'update_time' => $this->update_time, 'author_id' => $this->author_id, 'viewcount' => $this->viewcount, 'up' => $this->up, 'classify' => $this->classify]);
     $query->andFilterWhere(['like', 'title', $this->title])->andFilterWhere(['like', 'content', $this->content])->andFilterWhere(['like', 'describe', $this->describe])->andFilterWhere(['like', 'tags', $this->tags]);
     return $dataProvider;
 }