因此,我希望此代码能为我检索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(字段,比较,值),然后最终通过$ records-> get();检索结果。这样,您仍然会获得模型集合,因为如果您使用DB :: table('publications'),然后使用相同的代码执行-> get(),则只会获得元素数组,而不会像模型中那样加载关系。希望我能表达我的观点并解释得很好。对不起,如果我没有。我真的尽力了。现在解决了!

最佳答案

由于我需要这项工作,因此我探索了其他方法...我所做的是将Publication :: all()转换为Publication :: query()(这将使您获得QueryBuilder)然后,我使用了Query Builder-> where(field,比较,值),最后使用$ records-> get();检索结果。这样,您仍然会获得模型集合,因为如果您使用DB :: table('publications'),然后使用相同的代码执行-> get(),则只会获得元素数组,而不会像模型中那样加载关系。希望我能表达我的观点并解释得很好。对不起,如果我没有。我真的尽力了。现在解决了!

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

10-10 13:59