在 Laravel 中查看 Blade 时检查发送到数据库的查询数量

E.B*_*E.B 1 sql database laravel eloquent laravel-blade

我有一个收藏。

$items = Item:where('count' , '>' , 5)->get();
Run Code Online (Sandbox Code Playgroud)

我有一组 id。

$ids = [2 , 4 , 7 , 8];
Run Code Online (Sandbox Code Playgroud)

在我的 Laravel 刀片中,我想根据 ids 数组在 $items 上显示每个。我做了这样的事情:

@foreach($ids as $id)
    <a href="#">
        {{ $items->where('id' ,$id)->first()->name }}
    </a>
@endforeach
Run Code Online (Sandbox Code Playgroud)

它工作得很好。问题是,我向数据库发送了多少查询?以下是否在运行新查询?

$items->where('id' ,$id)->first()->name
Run Code Online (Sandbox Code Playgroud)

因为我已经get()从数据库中的项目。另一个问题是,如何在显示视图/刀片时找出有多少查询被发送到数据库?

小智 5

检查/调试在 laravel 页面上执行的所有查询:(下面的代码可以插入到根文件中)

\Event::listen('Illuminate\Database\Events\QueryExecuted', function ($query) {
    var_dump($query->sql);
    var_dump($query->bindings);
    var_dump($query->time);
});
Run Code Online (Sandbox Code Playgroud)