У Laravel, ви можете отримати сирий SQL-запит у вигляді рядка з конструктора запитів або запиту Eloquent, використовуючи метод toSql()
. Цей метод повертає SQL-запит із заповнювачами для прив'язаних параметрів.
Якщо ви хочете побачити фактичний запит із заповненими параметрами, вам потрібно буде вручну замінити заповнювачі.
Основне використання методу toSql()
Ось як можна використовувати метод toSql()
:
Приклад.
use Illuminate\Support\Facades\DB;
$query = DB::table('users')->where('email', '[email protected]');
echo $query->toSql();
Вивід,
select * from `users` where `email` = ?
Отримання запиту з параметрами
Щоб побачити повний запит із фактичними параметрами, ви можете вручну прив'язати параметри до рядка запиту.
Приклад.
$query = DB::table('users')->where('email', '[email protected]');
// Отримати сирий SQL-запит
$sql = $query->toSql();
// Отримати прив'язки
$bindings = $query->getBindings();
// Заміна заповнювачів на фактичні прив'язки
$fullQuery = vsprintf(str_replace('?', "'%s'", $sql), $bindings);
echo $fullQuery;
Вивід.
select * from `users` where `email` = '[email protected]'
Для запитів Eloquent
Якщо ви працюєте з запитом Eloquent, можна використовувати той самий метод toSql()
.
Приклад.
use App\Models\User;
$query = User::where('email', '[email protected]');
echo $query->toSql();
Вивід.
select * from `users` where `email` = ?
Щоб включити прив'язки.
$bindings = $query->getBindings();
$sql = $query->toSql();
$fullQuery = vsprintf(str_replace('?', "'%s'", $sql), $bindings);
echo $fullQuery;
Використання інструментів налагодження Laravel
Альтернативно, можна використовувати інструменти для налагодження, щоб логувати або переглядати виконувані запити:
- Увімкнення логування запитів
DB::enableQueryLog();
// Виконати запит
$users = DB::table('users')->where('email', '[email protected]')->get();
// Отримати виконані запити
dd(DB::getQueryLog());
2. Використання DebugBar (для локальної розробки) Встановіть пакет Laravel DebugBar, і він автоматично покаже виконувані запити з їхніми параметрами в браузері.
— -
- Використовуйте
toSql()
для сирого запиту із заповнювачами. - Використовуйте
getBindings()
для отримання прив'язаних параметрів і вручну інтегруйте їх у повний запит. - Використовуйте інструменти для налагодження, такі як
DB::enableQueryLog()
або Laravel DebugBar для більш детального налагодження.
Swaraa Tech Solutions пропонує високоякісні послуги веб-дизайну та веб-розробки в Ахмедабаді. Наша компанія з розробки додатків відома своєю інноваційною діяльністю. Ми також спеціалізуємося на SEO послугах в Ахмедабаді та маркетингу в соціальних мережах для покращення вашої онлайн-присутності. Відчуйте найкраще з нашими AWS Cloud Solutions. Зв’яжіться з нами сьогодні для безкоштовної консультації!
Слідкуйте за новими оновленнями!
Відвідайте наш сайт: www.swaraa.dev
Напишіть нам на: [email protected]
Телефонуйте за номером 07935336883
Перекладено з: How do I get the query builder to output its raw SQL query as a string