我正在使用Laravel 5.2和雄辩的模型与我的数据库交互,我想知道查询何时实际发送到服务器?
我正在开发一个搜索/排序栏,需要根据显示的值构建查询。例如:(""表示没有选择值)
目的地 - >巴黎机场 - >""排序 - > ""
所以我现在根据if语句构建查询。根据填写的值构建许多不同的查询。即(查询上述值)
if(Destination != "" && Airport == "" && Sort == "")
Flight::where(['destination']=>Destination)->get();
因此,对于使用此方法的每种可能组合,我必须对此进行9次不同的操作。我想知道的是查询实际执行的时间是什么时候?这似乎是当你在模型上调用 - > get()方法时?这是怎么回事?如果是这样,我可以做这样的事情,这将使我的生活更轻松。 (伪代码)
$query = Flight();
if(Destination != "")
$query->where(['destination'=>Destination]
if(Airport != "")
$query->where(['airport'=>Airport])
etc...
也许是一个愚蠢的问题,但谷歌搜索有问题。
谢谢,
马特
答案 0 :(得分:2)
当您调用get()
,all()
或first()
方法时,将执行查询。如果您想查看Laravel每个请求执行了多少查询以及它构建了哪些查询,请安装debugbar。
将此添加到composer.json
:
"require-dev": {
"barryvdh/laravel-debugbar": "^2.2",
并运行composer update
。