mysql - 使用日期过滤器的 Laravel Eloquent 查询中的错误结果

标签 mysql laravel eloquent

我必须从日期列大于今天的数据库中提取结果(基本上我需要查看即将发生的事件)。

在现实世界中,我在我的 MySql 控制台中玩游戏:

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

而且效果很好。

我正在尝试使用 Laravel 以 Eloquent 方式提取相同的数据,我写道:

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

但它会返回错误日期的错误结果。

请注意,我使用的搜索 方法是针对全文的。我认为这不是问题所在。

如果我进行调试并使用 dd($results) 打印 sql,它会返回:

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

这与我正在处理的起始查询非常相似。

我 Eloquent 查询有什么问题?

感谢您的宝贵时间:)

最佳答案

这样试试

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

now() 将返回一个 Carbon DateTime 实例,该实例将自动转换为适当的格式

关于mysql - 使用日期过滤器的 Laravel Eloquent 查询中的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56169924/

相关文章:

mysql - 如何在 Laravel 中创建 where 语句以匹配来自另一个模型的字段

php - Laravel Eloquent 为模型关系设置默认值?

mysql - 针对每条记录添加一个单选按钮

c# - 删除了asp.net中的表?

html - 无法在 php 和 mysql 中存储多个单选按钮值

javascript - 选择 2 ajax : preselected data in edit mode

php - 拥有一个应该在 Laravel 中存储单个记录或行的数据库表

json - 以 json 格式返回 Eloquent 集合

php - 生成上次的 unix 时间戳

php - Laravel Eloquent 关系 keyBy()