Get Laravel 5 controller name in view

If your layout is a Blade template, you could create a view composer that injects those variables into your layout. In app/Providers/AppServiceProvider.php add something like this:

public function boot()
{
    app('view')->composer('layouts.master', function ($view) {
        $action = app('request')->route()->getAction();

        $controller = class_basename($action['controller']);

        list($controller, $action) = explode('@', $controller);

        $view->with(compact('controller', 'action'));
    });
}

You will then have two variables available in your layout template: $controller and $action.


I use a simple solution. You can test and use it in everywhere, also in your views:

{{ dd(request()->route()->getAction()) }}

Tags:

Laravel 5