【发布时间】:2019-05-16 21:45:19
【问题描述】:
我必须从日期列大于今天的数据库中提取结果(基本上我需要查看即将发生的事件)。
在现实世界中,我在 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 方法是用于全文。我认为这不是问题。
如果我进行调试并使用 dd($results) 打印 sql,它会返回:
select * from `searcheable` where MATCH (title,description) AGAINST (? IN BOOLEAN MODE) and date(`date`) > ? order by `date` asc
这与我正在处理的起始查询非常相似。
我雄辩的查询出了什么问题?
感谢您的宝贵时间:)
【问题讨论】:
-
您正在与常量字符串
' CURDATE()'进行比较。请改用DB::raw('CURDATE()')。或者从 PHP 传递当前日期。 -
或者你可以像
->whereDate("date",">",date('Y-m-d'))这样比较