gpt4 book ai didi

mysql - Laravel Eloquent ORMWhere 语句在默认的created_at时间戳上进行日期时间戳比较

转载 作者:行者123 更新时间:2023-11-29 22:11:52 25 4
gpt4 key购买 nike

所以我有这个代码希望应该为我检索一些网络服务的 View 。

 $records = Publication::all();

if(isset($headers["input"]["from"])) {
$from = Carbon::createFromFormat('Y-m-d', $headers["input"]["from"])->toDateTimeString();
$records = $records->where("created_at", ">", $from);
}

if(isset($headers["input"]["until"])) {
$until = Carbon::createFromFormat('Y-m-d', $headers["input"]["until"])->toDateTimeString();
$records = $records->where("created_at", "<", $until);
}

当传递 2015-07-21 的 GET 参数时,这应该会返回一些出版物...但它什么也没有返回。我尝试测试以查看代码后执行 dd($results) 时发生了什么,但我尝试过的任何方式都没有得到任何结果。我尝试传递 ->get() 和 ->all() 但仍然一无所获。我什至尝试只调用该方法,而不分配给相同的 $record 变量,尽管这对我来说没有意义,但我正在全力解决这个问题。

可能是Sql语句有问题?比较日期?当 dd($until) 或 dd($from) 时,碳变量看起来很好

编辑:因为我需要这个工作,所以我探索了其他方法...我所做的是将 Publication::all() 转换为 Publication::query() (这将为您提供 QueryBuilder )然后我使用 Query Builder ->where(field,comparison,value) 最后用 $records->get() 检索结果;这样,您仍然会获得模型集合,因为如果您使用 DB::table('publications') ,然后在执行 ->get() 时使用相同的代码,您将只获得元素数组,而不会像模型中那样加载关系。希望我表达了我的观点并解释得很好。如果我没有的话,我很抱歉。我真的尽力了。现在这个问题已经解决了!

最佳答案

因为我需要这个工作,所以我探索了其他方法...我所做的是将 Publication::all() 转换为 Publication::query() (这将为您提供 QueryBuilder )然后我使用 Query Builder ->where (field,comparison,value) 最后用 $records->get(); 获取结果这样,您仍然会获得模型集合,因为如果您使用 DB::table('publications') ,然后在执行 ->get() 时使用相同的代码,您将只获得元素数组,而不会像模型中那样加载关系。希望我表达了我的观点并解释得很好。如果我没有的话,我很抱歉。我真的尽力了。现在这个问题已经解决了!

关于mysql - Laravel Eloquent ORMWhere 语句在默认的created_at时间戳上进行日期时间戳比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551060/

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