在AppServiceProvider中获取路由参数

时间:2016-06-10 08:06:53

标签: php laravel

我的应用程序中的每个路径都设置了公司参数。我正在尝试将该公司的变量发送到每个视图以便于访问。

在我的AppServiceProvider.php中,我尝试了两件事:

$company = App::make('request')->route()->getParameter('company');
view()->share('company', $company);

还有:

$company = Route::getCurrentRoute()->getParameter('company');
view()->share('company', $company);

但是他们两个都得到了错误:

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

我如何获取参数变量?

编辑:

我在boot()函数

中进行此操作

答案:

我所做的就是在AppServiceProvider中的register()函数中执行以下操作:

 view()->composer('*', function ($view) {
            // all views will have access to current route
            $view->with('company', \Route::getCurrentRoute()->getParameter('company'));
        });

1 个答案:

答案 0 :(得分:2)

AppServiceProvider 中尚不知道当前路由,因为此处仍在引导应用程序。如果您想访问路线参数,可以使用视图编辑器 - 请在此处查看更多详细信息https://laravel.com/docs/5.1/views#view-composers

一个简单的例子:

class AppServiceProvider extends ServiceProvider {
  public function register()
  {
    view()->composer('*', function ($view) {
        // all views will have access to current rout
        $view->with('current_route', \Route::getCurrentRoute());
    });
  }
}