Метод dd
Метод dd является глобальной вспомогательной функцией Laravel, которая выводит содержимое переменной в удобочитаемом виде и немедленно останавливает выполнение скрипта. Название расшифровывается как "Dump and Die". Первым параметром передаётся переменная для дампа, вторым и последующими - дополнительные переменные. Метод автоматически определяет тип данных и форматирует вывод с использованием цветов и структурированного представления.
Синтаксис
<?php
dd($variable);
dd($variable1, $variable2, $variable3);
?>
Пример
Давайте выведем содержимое массива и строки для отладки:
<?php
namespace AppHttpControllers;
use AppModelsUser;
class UserController extends Controller
{
public function index()
{
$users = User::all();
$message = 'Users list';
dd($users, $message);
}
}
?>
Результат выполнения кода:
[ // app/Http/Controllers/UserController.php:16
{#123 ▼
+"id": 1,
+"name": "John Doe",
+"email": "john@example.com",
+"created_at": "2026-01-01 10:00:00",
+"updated_at": "2026-01-01 10:00:00"
},
{#124 ▼
+"id": 2,
+"name": "Jane Smith",
+"email": "jane@example.com",
+"created_at": "2026-01-02 11:00:00",
+"updated_at": "2026-01-02 11:00:00"
}
]
"Users list"
Пример
Использование метода внутри условия для проверки значения переменной:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function show($id)
{
$article = Article::find($id);
if ($article->status === 'draft') {
dd('Article is draft', $article);
}
return view('article', ['article' => $article]);
}
}
?>
Результат выполнения кода для черновика:
"Article is draft"
{#125 ▼
+"id": 5,
+"title": "Draft article",
+"content": "Lorem ipsum dolor sit amet",
+"status": "draft",
+"user_id": 3,
+"created_at": "2026-01-05 09:00:00",
+"updated_at": "2026-01-05 09:00:00"
}
Пример
Использование метода внутри коллекции для отладки промежуточных результатов:
<?php
namespace AppHttpControllers;
use AppModelsOrder;
class OrderController extends Controller
{
public function process()
{
$orders = Order::where('status', 'pending')
->where('total', '>', 100)
->get();
$res = $orders->map(function ($order) {
return $order->total * 0.9; // 10% discount
})->filter(function ($price) {
return $price > 50;
});
dd($res, $orders->count());
}
}
?>
Результат выполнения кода:
[ // app/Http/Controllers/OrderController.php:20
180.0,
135.0,
99.0
]
3
Пример
Отладка запроса с использованием метода внутри цепочки:
<?php
namespace AppHttpControllers;
use AppModelsProduct;
use IlluminateSupportFacadesDB;
class ProductController extends Controller
{
public function index()
{
$products = Product::where('price', '>', 50)
->where('category_id', 1)
->orderBy('price', 'desc')
->limit(5)
->get();
dd($products->pluck('name'), $products->avg('price'));
}
}
?>
Результат выполнения кода:
[ // app/Http/Controllers/ProductController.php:18
"Premium Laptop",
"Professional Monitor",
"Gaming Mouse",
"Mechanical Keyboard",
"USB Hub"
]
125.5