我正在尝试使用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) {