【问题标题】:How to get the raw SQL query from the Laravel Query Builder in laravel8.0如何从 laravel8.0 中的 Laravel Query Builder 获取原始 SQL 查询
【发布时间】:2022-01-19 14:19:50
【问题描述】:

使用 Laravel Eloquent 方法 获取 Eloquent 调用查询的第一种方法是使用 toSql() 方法。此方法在不运行的情况下返回查询 - 如果您不想更改数据而只获取查询,这很好 - 但如果您的查询更复杂或有子查询,此方法不会显示整个查询。

在此处输入代码

App\User::query()
    ->where('created_at', '<', now()->subYear())
    ->with('assignedApps', 'courses')
    ->orderBy('email', 'asc')
    ->limit(5)
    ->toSql();

【问题讨论】:

    标签: python php laravel


    【解决方案1】:

    如果要显示所有查询,则必须启用查询日志。 DB::enableQueryLog

    \DB::enableQueryLog(); // enable the query log before your modal
    
    App\User::query()
        ->where('created_at', '<', now()->subYear())
        ->with('assignedApps', 'courses')
        ->orderBy('email', 'asc')
        ->limit(5)
        ->get();
    
    dd(DB::getQueryLog()); // after your query, dump and die get query log. 
    

    它将返回所有带有值的查询结果

    【讨论】:

    • 另外,它显示了执行查询需要多少时间。另一个好处是它会显示启用获取日志之间的所有查询,以便您一次查看所有查询。
    猜你喜欢
    • 2016-07-25
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 2021-10-12
    • 2014-04-10
    • 1970-01-01
    • 2021-02-04
    相关资源
    最近更新 更多