Простой, но полезный приём для дебага в Laravel — логирование SQL-запросов в человекочи... — 28 июня 2026 г. в 20:09:40.372
Простой, но полезный приём для дебага в Laravel — логирование SQL-запросов в человекочитаемом виде. По умолчанию DB::listen() в Laravel выводит запрос с плейсхолдерами ?, а значения параметров идут отдельно. Это не всегда удобно — сложно быстро понять, что реально выполняется. Вот сниппет, который собирает полный SQL-запрос с подставленными значениями: DB::listen(function ($query) { $sql = $query->sql; foreach ($query->bindings as $binding) { $binding = is_numeric($binding) ? $binding : "'{$binding}'"; $sql = preg_replace('/\?/', $binding, $sql, 1); } logger()->info("Executed query: {$sql}"); }); 📌 Пример: select * from users where email = 'john@example.com' and age > 18 Очень удобно, когда ты хочешь понять, почему условие WHERE не сработало или почему запрос медленный. Можно кинуть это в AppServiceProvider::boot(), и на локальной машине всегда видеть, что реально уходит в базу. 👉 @php_lib

