如何根据yii2 Activerecord中的比较选择要显示的数据?我来自db的数据记录包含列depTime
。因此,我只想显示比当前时间少depTime
的数据。
这是我在控制器中的功能。
public function actionSelectedTeam($id) {
$searchModel = new TeamSearch();
$dataProvider= $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->pagination = [
'pageSize' => 5
];
return $this->render('team-info', [
'model' => $this->findModel($id),
'dataProvider' => $dataProvider,
]);
}
还是有另一种方法?我的意思是,也许是从模型之外,使用这种方法。
谢谢。
答案 0 :(得分:1)
您将始终显示比当前时间短的记录,除了它们是某种保留之外,您将手动提供将来的日期/时间。
您尚未指定depTime
列的类型,我假设您有一个datetime
列,可以使用time()
和now()
函数为达到这个。
您可以在返回search()
之前在搜索模型的$dataProvider
方法中添加以下行,该行将从当前时间中减去depTime
,如果结果为正,它将包括记录。
$query->andFilterWhere(['>', new Expression('time(now()) - time(depTime)'), 0]);