猿问

在 Laravel 的缓存中存储 API 调用的结果

Cache::remember如果尚未设置,我正在尝试使用来获取一些数据或将其存储在缓存中。


$artists = Cache::remember('artists', 60, function(\Barryvanveen\Lastfm\Lastfm $lastfm){

    return $lastfm->userTopArtists('un')->period(\Barryvanveen\Lastfm\Constants::PERIOD_WEEK)->limit(5)->get();

});

但我收到一个Symfony\Component\Debug\Exception\FatalThrowableError错误:


Too few arguments to function App\Http\Controllers\HomeController::App\Http\Controllers\{closure}(), 0 passed in .../vendor/laravel/framework/src/Illuminate/Cache/Repository.php on line 383 and exactly 1 expected

我在视图控制器中执行此操作,但已将上面的代码减少为 Tinker 中的可重现错误。


这是在 Laravel 6.9.0 中,使用默认的file缓存驱动程序。


森栏
浏览 83回答 1
1回答

扬帆大鱼

我设法让这个工作。而不是在闭包函数参数中传递类实例,它需要使用use:function() use (\Barryvanveen\Lastfm\Lastfm $lastfm) {
随时随地看视频慕课网APP
我要回答