gpt4 book ai didi

php - Laravel 5 Eloquent 比较日期返回 0 行,DB::table 返回行

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:30 25 4
gpt4 key购买 nike

我在使用 Laravel 5 和 Eloquent 时遇到问题,当我将日期与我拥有的模型(称为回调)上的 where 子句进行比较时,我返回了 0 行。如果我用\DB::代替,我会返回正确的行。

    $callbacks = Auth::user()
->callbacks
->where('datetime', '>', '0000-00-00 00:00:00')
->sortBy('datetime')
->values()
->take(10);

$callbacks2 = \DB::table('callbacks')
->where('datetime', '>', Carbon::today())
->get();

我能看到的唯一区别是第一个是通过 Eloquent Relationship 完成的,它返回经过身份验证的用户的所有回调的 Laravel 集合。

如果我删除 $callbacks 表达式中的 where 子句,它会返回所有回调(当然,旧的和新的一样,因为那时没有进行过滤)。

我尝试使用 Carbon\Carbon::today() 而不是我在上面粘贴的字符串文字,它给出了相同的结果,并且其中一个回调的数据库中的日期时间是 2016-04-05 15:30:00.

我一直在疯狂地谷歌搜索并尝试所有我能想到的,我真的不想为用户做一个完整的回调提取,只是为了在发送回调之前在 PHP 中删除大部分回调一天,到 View 。

我知道我需要做另一个 Where to avoid get rows from day after the day I'm looking,我只是删除了大部分链接以清理它:)

非常欢迎任何建议!

最佳答案

Auth::user()->callbacks 是一个集合,因此您在集合中的项目集上调用 where。所以答案取决于您在数据库中的数据,但这些不会产生相同的查询。

我会假设 DB:: 返回的行不真实存在于当前用户。

您可以通过调用查看运行了哪些查询

DB::enableQueryLog()//在查询之前

dd(DB::getQueryLog()//在查询运行之后

关于php - Laravel 5 Eloquent 比较日期返回 0 行,DB::table 返回行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36409173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com