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']"
        );
    });