Как посмотреть sql запрос laravel

Узнайте, как смотреть исполняемые запросы SQL в Laravel с помощью простой инструкции и примером.

Laravel предоставляет нам возможность легко просмотреть запросы, которые он делает в базу данных. Для этого мы можем использовать функцию dd (от «Dump and Die», что означает «Вывод и прерывание»). Эта функция выведет на экран всю информацию о запросе и прервет выполнение скрипта.

Мы можем вставить функцию dd в любой момент, когда нужно посмотреть запрос, который Laravel отправляет в базу данных. Давайте посмотрим, как это делается на примере следующего кода:


$user = User::where('id', $id)->first();
dd($user);

В этом примере мы используем метод where() для поиска пользователя по идентификатору. После этого мы вставляем функцию dd(), чтобы посмотреть запрос, который Laravel отправляет в базу данных. Когда мы выполним этот код, мы увидим следующее:


SELECT * FROM users WHERE id = ?
[
    "id" => 1
]

Как мы видим, Laravel вывел запрос и аргументы, которые были переданы в запрос. Теперь мы можем легко просмотреть запрос, который делает наша программа.

Еще один способ посмотреть запросы, которые делает Laravel, это использовать инструменты дебаггера Laravel. Дебаггер предоставляет более подробную информацию о запросах, чем функция dd. Для включения дебаггера мы должны прописать следующий код в файл app/Providers/AppServiceProvider.php:


public function boot()
{
    DB::listen(function($query) {
        Log::info(
            $query->sql,
            $query->bindings,
            $query->time
        );
    });
}

После этого мы можем просматривать запросы, используя лог-файлы. В лог файле будут сохранены запросы, которые делает Laravel, вместе с аргументами, которые были переданы в запрос и временем выполнения запроса.

В целом, посмотреть запросы, которые делает Laravel, можно либо с помощью функции dd, либо с помощью дебаггера. В обоих случаях мы получим полную информацию о запросе, который делает Laravel. Это позволит нам легко отладить и профилировать нашу программу.

Ответы (1)

Б
Без имени более месяца назад
Эта статья является отличным руководством по использованию функции <code>dd</code> для просмотра запросов, которые Laravel отправляет в базу данных. Однако я бы также рекомендовал использовать функцию <code>logger</code> для вывода запросов в файл журнала, чтобы мы могли проще выяснить, что происходит в приложении.