Неправильные результаты в красноречивом запросе Laravel с использованием фильтра даты - PullRequest
0 голосов
/ 16 мая 2019

Мне нужно извлечь результаты из БД, у которой столбец даты больше, чем сегодня (в основном мне нужно увидеть предстоящие события).

В реальном мире я играю на своей консоли MySql:

select * from searcheable where MATCH (title,description) AGAINST ('rock' IN BOOLEAN MODE) and date > CURDATE() order by date  asc

И это хорошо работает.

Я пытаюсь извлечь те же данные в красноречивом стиле, используя Laravel, и я написал:

$results = Search::search($key)
            ->whereDate("date",">",' CURDATE()')
            ->orderBy("date",'asc')
            ->paginate();

Но он возвращает неправильные результаты с неправильной датой.

Обратите внимание, что метод search , который я использовал, предназначен для полного текста.Я не думаю, что это проблема.

Если я отлаживаю и печатаю sql, используя dd ($ results), он возвращает:

select * from `searcheable` where MATCH (title,description) AGAINST (? IN BOOLEAN MODE) and date(`date`) > ? order by `date` asc

, что очень похоже на исходнуюзапрос, над которым я работаю.

Что не так в моем красноречивом запросе?

Спасибо за ваше время:)

Ответы [ 2 ]

3 голосов
/ 16 мая 2019

попробуйте так

 ->whereDate("date",">", now());

now() вернет экземпляр Carbon DateTime, который будет автоматически приведен к соответствующему формату

1 голос
/ 16 мая 2019

Вероятно, ваша ошибка в формате CURDATE(), вам нужно убедиться, что обе даты в одном и том же формате, для текущей даты я всегда использую $currentdate = Carbon::now();

затем используйте эту дату для поиска ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...