【问题标题】:Are Laravel 5.2 queries lazy loaded?Laravel 5.2 查询是否延迟加载?
【发布时间】:2016-05-09 16:46:33
【问题描述】:

我正在使用 Laravel 5.2 和 eloquent 模型与我的数据库进行交互,我想知道查询何时实际发送到服务器?

我正在开发一个搜索/排序栏,需要根据显示的值构建查询。例如:(“”表示没有选择值)

目的地->巴黎机场->""排序->""

所以我现在正在根据 if else 语句构建我的查询。根据填写的值构建许多不同的查询。即(查询上述值)

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...

也许是一个愚蠢的问题,但在谷歌搜索方面遇到了麻烦。

谢谢,

马特

【问题讨论】:

    标签: php mysql laravel eloquent laravel-5.2


    【解决方案1】:

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

    将此添加到composer.json:

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

    然后运行composer update

    【讨论】:

    • 谢谢。简单的问题,直接的回答。也感谢您提供调试器的链接。
    猜你喜欢
    • 2016-09-25
    • 2019-05-25
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多