未定义的属性:Illuminate \ Routing \ Router :: $ app

时间:2018-12-24 19:49:57

标签: laravel service

我知道$app服务容器可在应用程序中的任何地方使用。我像这样在route / web.php中的Service Container中注册一个类

App::bind('App\Billing\Stripe', function(){
    return new \App\Billing\Stripe(config('services.stripe.secret'));
});
$stripe = App::make('App\Billing\Stripe');
dd($stripe);

在转储后死掉但得到这样的结果

App::bind('App\Billing\Stripe', function(){
    return new \App\Billing\Stripe(config('services.stripe.secret'));
});
$stripe = $this->app->make('App\Billing\Stripe');
dd($stripe);

出现以下错误

Undefined property: Illuminate\Routing\Router::$app

谁能告诉我我怎么了?

预先感谢

1 个答案:

答案 0 :(得分:1)

如果将第二个示例更改为:

App::bind('App\Billing\Stripe', function(){
    return new \App\Billing\Stripe(config('services.stripe.secret'));
});
$stripe = $this->container->make('App\Billing\Stripe');
dd($stripe);

也就是说,在路由器中,服务容器是在$container中引用的,而不是在$app属性中引用的。