Yii2仅显示附加时间小于当前时间的数据

时间:2019-06-17 16:51:52

标签: activerecord yii2

如何根据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,
    ]);
}

还是有另一种方法?我的意思是,也许是从模型之外,使用这种方法。

谢谢。

1 个答案:

答案 0 :(得分:1)

您将始终显示比当前时间短的记录,除了它们是某种保留之外,您将手动提供将来的日期/时间。

您尚未指定depTime列的类型,我假设您有一个datetime列,可以使用time()now()函数为达到这个。

您可以在返回search()之前在搜索模型的$dataProvider方法中添加以下行,该行将从当前时间中减去depTime,如果结果为正,它将包括记录。

$query->andFilterWhere(['>', new Expression('time(now()) - time(depTime)'), 0]);