php - Laravel Carbon 返回 0 个结果
问题描述
我需要为数据库中的用户获取本月数据,所以我写:
dd($user->products->where('paid',1)->where('created_at','>=', Carbon::now()->startOfMonth()->toDateString())->all());
我得到了 0 个结果...
当我尝试Carbon::now()->subMonth()
它的效果很好但最后 30 天还给我时......
我该如何解决这个问题?如何仅获取本月数据?
解决方案
->toDateString()
导致查询查找一个string
值,而不是一个date
. 有两种方法可以解决这个问题:
(...)->where('created_at', '>=', Carbon::now()->startOfMonth())
// OR
(...)->whereDate('created_at', '>=', Carbon::now()->startOfMonth()->toDateString())
如果你只使用一个Carbon
变量,Laravel 知道检查date
逻辑。或者,如果您使用的是 a string
,则可以覆盖where
逻辑以将其视为 adate
通过使用->whereDate()
推荐阅读
- c# - C# Asp 网络核心配置
- java - 如何使用 Java 11 标准 HTTPClient 测量 ASYNC 发送 HTTPRequest 的经过时间?
- python - Groupby Row 元素和转置 Panda 数据框
- r - 使用 dcast 操作大型数据集
- dart - Dart:同时的 http 请求
- express - Busboy + Express:如何获取发送的文件及其规格
- html - 字体大小 rem 不能在不同的屏幕上缩放
- typescript - TypeScript 定义大型模型的更好方法
- python - Django REST Framework:指定 SerializerMethodField 的数据类型
- java - Spring找不到正在运行的kafka图像