Yii2 gridview过滤器与比较运算符

时间:2017-09-13 04:17:56

标签: yii2 yii2-advanced-app

如何使用大于指定值的列过滤gridview结果? 我的gridview有一个列数。当用户搜索为1000时,我想将结果过滤为大于1000的数量。我该怎么做? 现在我的搜索模型是这样的。

public function search($params) {
            $query = Service::find();
            $dataProvider = new ActiveDataProvider([
                'query' => $query,
                'sort' => ['defaultOrder' => ['id' => SORT_DESC,
                    ]]
            ]);

            $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,
                'patient_id' => $this->patient_id,
                'service' => $this->service,
                'duty_type' => $this->duty_type,
                'staff_manager' => $this->staff_manager,
                'from_date' => $this->from_date,
                'to_date' => $this->to_date,
                'branch_id' => $this->branch_id,
                'status' => $this->status,
                'CB' => $this->CB,
                'UB' => $this->UB,
                'DOC' => $this->DOC,
                'DOU' => $this->DOU,
            ]);


            $query->andFilterWhere(['like', 'estimated_price', $this->estimated_price])
                    ->andFilterWhere(['like', 'amount', $this->amount])
                    ->andFilterWhere(['like', 'days', $this->days])
                    ->andFilterWhere(['like', 'service_id', $this->service_id]);

            return $dataProvider;
    }

1 个答案:

答案 0 :(得分:0)

query->andFilterWhere(['like', 'estimated_price', $this->estimated_price])
     ->andFilterWhere(['>', 'amount', $this->amount])
     ->andFilterWhere(['like', 'days', $this->days])
     ->andFilterWhere(['like', 'service_id', $this->service_id]);

如果您想在搜索结果中包含输入的金额,请使用>=