【问题标题】:Laravel QueryBuilder to DB::selectLaravel 查询生成器到 DB::select
【发布时间】:2016-01-08 08:18:54
【问题描述】:

我遇到了 Laravel eloquent 的瓶颈问题。在运行构建查询的逻辑时,使用 eloquent 非常快速和简单,但是,当最终使用 $query->get()(由于行数和关系行数)时,它会停止并点击max execution time。我显然不想只是增加时间......而且我不想重写我所有的函数来使用原始查询(尽管我会,如果我必须的话)。

我的问题是,有没有办法将QueryBuilder sql 命令传递给DB::selectDB::raw

我知道你可以使用 $query->toSql() - 但我缺少数据绑定值,如果我能得到这些,我可以在几秒钟内解决这个问题。

【问题讨论】:

    标签: php laravel laravel-5 eloquent


    【解决方案1】:

    您可以通过调用 $query->getBindings() 从查询构建器获取绑定。

    【讨论】:

    • 您是如何构建查询的?您是使用模型类还是直接使用 DB 外观?
    • 你是对的。天才!谢谢 :) 由于它的复杂性,我使用了 eloquent,因为我需要所有的“额外”关系,并且它打到了很多桌子上。只是有道理。但是对于实际数据,我们谈论的是数百万行,当它创建超过 25k 行的模型时,我注意到了瓶颈。所以知道我不想要模型而只想要原始查询,但显然不想重写所有内容。你是明星!
    猜你喜欢
    • 2015-11-15
    • 2016-10-28
    • 1970-01-01
    • 2013-09-13
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    相关资源
    最近更新 更多