Yii2 показывает только те данные, у которых время прикрепления меньше текущего времени - PullRequest
0 голосов
/ 17 июня 2019

Как выбрать данные для отображения на основе сравнения в yii2 Activerecord?Моя запись данных из БД содержит столбец 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 Ответ

1 голос
/ 17 июня 2019

У вас всегда будут отображаться записи, которые меньше текущего времени, за исключением того, что они представляют собой какое-то резервирование, и вы указываете будущую дату / время вручную.

Вы не указали, что такоетип столбца depTime, я предполагаю, что у вас есть столбец datetime, для этого можно использовать функции time() и now().

Вы можете добавить следующую строку в метод search() вашей модели поиска, прежде чем возвращать $dataProvider, который вычитает depTime из текущего времени, и если результат будет положительным, он будет включать запись.

$query->andFilterWhere(['>', new Expression('time(now()) - time(depTime)'), 0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...