Last Templar
Last Templar

Reputation: 336

Get current route name in AppServiceProvider in Laravel 5.1

I have an installation of Laravel 5.1 and I want to share the route name with all my views. I need this for my navigation so I can highlight the corresponding navigation menu button depending on which page the user is on.

I have this code in my app\Providers\AppServiceProvider:

public function boot()
{
    $path = Route::getCurrentRoute()->getName();
    view()->share('current_route_name', $path);
}

and I am using this namespace:

use Illuminate\Support\Facades\Route;

but I am getting this error in my view:

Call to a member function getName() on a non-object

the interesting part is that if I write this in view it works with no problems at all:

{{ Route::getCurrentRoute()->getName() }}

Could anyone help me? am I not using the correct namespace or maybe it is not even possible to use Route at this point in the application?

Thank you!

Upvotes: 4

Views: 2127

Answers (1)

Gowtham Selvaraj
Gowtham Selvaraj

Reputation: 478

you can use view share under view composer.

    view()->composer('*', function($view)
    {
        $view->with('current_route_name',Route::getCurrentRoute()->getName());
    });

Or

 view()->composer('*', function($view)
    {
        view()->share('current_route_name',Route::getCurrentRoute()->getName());
    })

Upvotes: 1

Related Questions