2017-11-07 13 views
1

データのgridview表示のためにmodelsearchに次のコードがあります。Yii2 gridviewのページ番号は同じ値を示します

public function search($params) 
    { 
    $tech=array(22,24,25,29); 
     $query=(new \yii\db\Query())-> select(['tbl_ticket.*', 
      'tbl_assignment.ticket_id', 
      'tbl_assignment.tech_id', 
      'tbl_assignment.date_time', 
      'tbl_techs.f_name', 
      'tbl_techs.loc', 
      'tbl_techs.attachment', 
      'tbl_techs.dep', 
      'tbl_techs.sec']); 
     $query->from('tbl_ticket'); 

     $query->join('LEFT JOIN', 'tbl_assignment', 'tbl_assignment.ticket_id = tbl_ticket.id'); 
     $query->join('LEFT JOIN', 'tbl_techs', 'tbl_techs.id = tbl_assignment.tech_id'); 

     $query->where(['tbl_assignment.id' => $tech]); 
     $para = isset($_POST['Email']) ? $_POST['Email'] : $_GET['email']; 
     $dataProvider = new ActiveDataProvider([ 
      'query' => $query, 
      'pagination' => [ 
       'pageSize' => 5, 
       'params'=>array('email' => $para) 
      ], 
     ]); 
     $query->andWhere(['tbl_ticket.hd_user_email' => $para]); 

     if (! ($this->load($params) && $this->validate())) { 

      return $dataProvider; 
     } 
     $query->andFilterWhere(array(
      'id' => $this->id, 
      'ticket_id' => $this->ticket_id, 
      'tech_id' => $this->tech_id, 
      'date_time' => $this->date_time, 
     )); 
     return $dataProvider; 

    } 

グリッドビューを表示しますが、ページ番号をクリックすると同じデータが表示されます。 このエラーの原因は何ですか?

答えて

0

パラメータ$paramsは、条件条件を表します。 次のページをクリックすると、これらの条件が検索機能に送信されます。

....  
    $dataProvider = new ActiveDataProvider([ 
     'query' => $query, 
    ]); 

    $this->load($params); 
    .... 

あなたはまた$tech=array(22,24,25,29)を削除する必要がありますし、あなたのコントローラすなわちでそれを持っている:だからあなたのコードでは、あなたが実際にあなたの検索model.ieにこれら$paramsをロードする必要が

$yourDataProvider = $yourSearchModel->search([$yourSearchModel->formName() => ['tbl_assignment.id' => $tech]]) 
+0

変更なし後この – user7282

+0

も$ this-> load($ params); ($ this-> load($ params)&& $ this-> validate())){ – user7282

関連する問題