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



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

$artists = Cache::remember('artists', 60, function(BarryvanveenLastfmLastfm $lastfm){
return $lastfm->userTopArtists('un')->period(BarryvanveenLastfmConstants::PERIOD_WEEK)->limit(5)->get();
});

但是我收到一个SymfonyComponentDebugExceptionFatalThrowableError错误:

Too few arguments to function AppHttpControllersHomeController::AppHttpControllers{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缓存驱动程序。

我设法让它工作。不是在闭包函数参数中传递类实例,而是需要使用use传递它:

function() use (BarryvanveenLastfmLastfm $lastfm) {

最新更新