Сохранение результата вызова API в кеше в Laravel - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь использовать 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 драйвер кеша.

1 Ответ

0 голосов
/ 14 января 2020

Мне удалось заставить это работать. Вместо того, чтобы передавать экземпляр класса в аргументах функции замыкания, его нужно передать с помощью use:

function() use (\Barryvanveen\Lastfm\Lastfm $lastfm) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...