Laravel查询返回问号而不是变量值

Kev*_*ong 5 php mysql laravel

当我点击一个按钮时,正在对我自己编写的API进行AJAX调用.单击该按钮时,Javascript文件data将从单击的对象中检索两个属性,并将其与URL一起发送.这两个变量用于尚未执行的SQL语句的where子句中.

在进行调用时,处理API请求的PHP脚本通过Input::get('data-attribute-one'))和接收两个变量Input::get('data-attribute-two')).当我输出这两个属性时,显示正确的值.

但是,当我将变量放入查询的where子句时,如下所示:

$fans = Sensor::where('fan_number', '=', $dataAttributeOne)->where('created_at', '>=', $this->now->subHours(6))->get();
Run Code Online (Sandbox Code Playgroud)

没有返回任何结果.所以我换成->get()->toSql()检查查询,并将其送给我这个陌生的代码行:

Object {fans: "select * from "myawesomedatabasetable" where "fan_number" = ? and "created_at" >= ?"}
Run Code Online (Sandbox Code Playgroud)

$dataAttributeOne是检索到的data-atribute,$this->now->subHours(6)是当前时间减去6小时.当我输出它时,它的格式created_at与数据库中的值相同,当我将它硬编码到Phpmyadmin中的SQL语句时,查询就像魅力一样执行.所以没有问题.

所以我的问题是:为什么在查询执行时变量会变成问号,我该如何解决?

提前致谢!

Ale*_*nin 6

这就是toSql()有效的方式.此方法用于调试.

https://scotch.io/tutorials/debugging-queries-in-laravel