dpvm7231 2017-11-23 05:26
浏览 73
已采纳

Laravel 5.4更新 - SHA Hasher在Singleton中未设置的非法偏移类型

I'm migrating from Laravel 5.3 to Laravel 5.4. We have a custom SHA hasher from a previous application.

In the Laravel 5.4 patch notes, it is shown that share() has been removed and singleton() is to replace it.

I've got the application up and running except for the newly updated hasher. When I change my share function to singleton I get the following error:

ErrorException: Illegal offset type in unset in /Applications/XAMPP/xamppfiles/htdocs/App/vendor/laravel/framework/src/Illuminate/Container/Container.php:1090
#3 /Applications/XAMPP/xamppfiles/htdocs/App/app/Libraries/SHAHashServiceProvider.php(13): Illuminate\Container\Container->singleton(Object(Closure))

I have the newly updated hasher is as following:

public function register() {
    $this->app['hash'] = $this->app->singleton(function () {
        return new SHAHasher();
    });

}

What am I doing wrong here with the singleton function?

Thanks!

  • 写回答

1条回答 默认 最新

  • dpb_4431 2017-11-23 05:30
    关注

    This is what the docs have for creating a singleton:

    $this->app->singleton('HelpSpot\API', function ($app) {
        return new HelpSpot\API($app->make('HttpClient'));
    });
    

    Doesn't match what you have.

    Laravel Docs - 5.4 - Service Container - Bindings

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?