2015-10-24 127 views
1

我有一个Laravel 5.1的安装,我想用我所有的视图共享路由名称。我需要这样的导航功能,以便根据用户所在的页面来突出显示相应的导航菜单按钮。在Laravel 5.1的AppServiceProvider中获取当前的路由名称

我在我的应用程序\供应商\ 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?

谢谢!

回答

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()); 
    })