Laravel 5.2查询是否延迟加载?

时间:2016-05-09 16:46:33

标签: php mysql laravel eloquent laravel-5.2

我正在使用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...

也许是一个愚蠢的问题,但谷歌搜索有问题。

谢谢,

马特

1 个答案:

答案 0 :(得分:2)

当您调用get()all()first()方法时,将执行查询。如果您想查看Laravel每个请求执行了多少查询以及它构建了哪些查询,请安装debugbar。

将此添加到composer.json

"require-dev": {
    "barryvdh/laravel-debugbar": "^2.2",

并运行composer update