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

Php 在Laravel的缓存中存储API调用的结果,php,laravel,caching,Php,Laravel,Caching,我正在尝试使用Cache::memory获取一些数据,如果尚未设置,则将其存储在缓存中 $artists = Cache::remember('artists', 60, function(\Barryvanveen\Lastfm\Lastfm $lastfm){ return $lastfm->userTopArtists('un')->period(\Barryvanveen\Lastfm\Constants::PERIOD_WEEK)->limit(5)->

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

$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中的可复制错误


这是在Laravel6.9.0中,使用默认的
文件
缓存驱动程序。

我成功地实现了这一点。需要使用
use
传递类实例,而不是在闭包函数参数中传递类实例:

function() use (\Barryvanveen\Lastfm\Lastfm $lastfm) {