我的应用程序中的每个路径都设置了公司参数。我正在尝试将该公司的变量发送到每个视图以便于访问。
在我的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'));
});
答案 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());
});
}
}