Метод dump
Метод dump применяется к запросу Eloquent
или Query Builder и выводит в браузер сгенерированный
SQL-запрос с привязанными параметрами, не останавливая
выполнение скрипта. В отличие от метода dd,
который завершает выполнение после вывода, метод
dump позволяет продолжить работу программы.
Это удобно для отладки цепочек запросов или проверки
корректности построения SQL.
Синтаксис
<?php
Model::dump()->get();
?>
Пример
Давайте выведем SQL-запрос для получения всех статей
со статусом 'published':
<?php
use AppModelsArticle;
$articles = Article::where('status', 'published')
->dump()
->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"select * from "articles" where "status" = 'published'"
"article 1"
"article 2"
"article 3"
Пример
Давайте выведем SQL-запрос с несколькими условиями
для статей с id больше 1 и статусом
'draft':
<?php
use AppModelsArticle;
$articles = Article::where('id', '>', 1)
->where('status', 'draft')
->dump()
->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"select * from "articles" where "id" > 1 and "status" = 'draft'"
"article 2"
"article 3"
Пример
Метод dump можно использовать несколько раз
в цепочке запросов, чтобы отслеживать изменения SQL
на каждом этапе построения:
<?php
use AppModelsArticle;
$query = Article::where('status', 'published')
->dump()
->where('id', '>', 5)
->dump()
->orderBy('id', 'desc')
->dump()
->get();
foreach ($query as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"select * from "articles" where "status" = 'published'"
"select * from "articles" where "status" = 'published' and "id" > 5"
"select * from "articles" where "status" = 'published' and "id" > 5 order by "id" desc"
"article 3"
"article 2"