【发布时间】:2015-10-11 14:46:54
【问题描述】:
所以我有这个代码希望应该为我检索 Web 服务的一些视图。
$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() 时使用相同的代码,你只会得到元素数组,而不会像模型中那样加载关系.希望我表达了我的观点并解释得很好。对不起,如果我没有。我真的尽力了。现在已经解决了!
【问题讨论】:
-
这是已解决...
-
请将您自己问题的解决方案放在答案中,而不是问题本身。
标签: mysql sql date laravel where-clause