这里的时间是date 我数据库存的是 时间戳 yii有个between
web页面就是两个input框 就不展示了
andWhere和andFilterWhere都可以用来追加条件,只是andFilterWhere会忽略条件中的空值
时间区段搜索需要注意,开始时间不填/结束时间不填情况的搜索
控制器:
$query = OrderDealer::find();
$this->get_search_date($query, 'create_time');
//yii自带的分页
$countQuery = clone $query; $pages = new Pagination([ 'totalCount' => $countQuery->count(), 'pageSize' => 10, ]); $order_info = $query->offset($pages->offset)->limit($pages->limit)->orderBy($order)->all();
public function get_search_date($query, $field) { $end_date = strtotime($this->_request->get('end_date')) + 86400 - 1; $start_date = strtotime($this->_request->get('start_date')); if ($end_date && $this->_request->get('end_date')) { $query->andWhere(['between', $field, $start_date, $end_date]); } else if ($start_date) { $query->andWhere(['>=', $field, $start_date]); } else if ($this->_request->get('end_date')) { $query->andWhere(['<=', $field, $end_date]); } }