List all registered variables inside a Laravel view
Solution 1:
Use the dd
helper:
{{ dd(get_defined_vars()) }}
Read more: https://laravel.com/docs/5.4/helpers#method-dd
Update (thx, @JoeCoder): you can further cutdown on the "useless" variables by doing:
{{ dd(get_defined_vars()['__data']) }}
Solution 2:
Kind of the same, but a bit tidier :
{{ dd($__data) }}
Solution 3:
Use Laravel Helper function dd
Use dd
in blade view:
{{ dd($__data) }}
OR <?php dd($__data); ?>
Above both methods works in blade view.
Solution 4:
If you are using Laravel 5.1 which now allows to extend Blade with custom directives you might find this useful. You need to register directives in AppServiceProvider like in this example or create you own provider.
/**
* Blade directive to dump template variables. Accepts single parameter
* but also could be invoked without parameters to dump all defined variables.
* It does not stop script execution.
* @example @d
* @example @d(auth()->user())
*/
Blade::directive('d', function ($data) {
return sprintf("<?php (new Illuminate\Support\Debug\Dumper)->dump(%s); ?>",
null !== $data ? $data : "get_defined_vars()['__data']"
);
});
/**
* Blade directive to dump template variables. Accepts single parameter
* but also could be invoked without parameters to dump all defined variables.
* It works similar to dd() function and does stop script execution.
* @example @dd
* @example @dd(auth()->user())
*/
Blade::directive('dd', function ($data) {
return sprintf("<?php (new Illuminate\Support\Debug\Dumper)->dump(%s); exit; ?>",
null !== $data ? $data : "get_defined_vars()['__data']"
);
});