在Laravel 5.1中的AppServiceProvider中获取当前路由名称

时间:2015-10-24 00:39:16

标签: php laravel-5.1

我安装了Laravel 5.1,我希望与所有观点共享路径名称。我的导航需要这个,所以我可以根据用户所在的页面突出显示相应的导航菜单按钮。

我在app \ Providers \ AppServiceProvider中有这段代码:

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

我正在使用此命名空间:

use Illuminate\Support\Facades\Route;

但我在视图中收到此错误:

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

有趣的是,如果我在视图中写这个,它完全没有问题:

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

有人能帮帮我吗?我没有使用正确的命名空间,或者甚至不可能在应用程序中使用Route?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在视图编辑器下使用视图共享。

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

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