Laravel документы дают пример:как передать переменную Cache :: помнить функцию
$value = Cache::remember('users', $minutes, function() {
return DB::table('users')->get();
});
В моем случае у меня есть
public function thumb($hash, $extension)
{
Cache::remember('thumb-'.$hash, 15, function() {
$image = Image::where('hash', $hash)->first();
});
Если я бегу, что я получаю ErrorException in ImageController.php line 69: Undefined variable: hash
. Я попытался передать $ хеш функционировать следующим образом:
Cache::remember('thumb-'.$hash, 15, function($hash)
, но затем получил другую ошибку, как показано ниже:
Отсутствует аргумент 1 для App \ Http \ Контроллеры \ ImageController :: App \ Http \ Контроллеры {закрытие}(), называемый в C: \ XAMPP \ HTDOCS \ imagesharing \ поставщика \ Laravel \ рамки \ SRC \ Осветите \ Cache \ Repository.php на линии 316 и определены
Как передать аргумент, так что я можете использовать его в моем запросе?
Чтобы добавить немного больше деталей - это не проблема с laravel, так как функции закрытия/анонимности работают в PHP. См. [PHP Docs] (http://php.net/manual/en/functions.anonymous.php) –
спасибо, что сделал трюк –
Я решил использовать вечно вместо того, чтобы помнить, и этот кэш :: навсегда (' thumb-'. $ hash, function() use ($ hash) дает мне исключение в строке FileStore.php 102: Сериализация' Closure 'недопустима, нельзя ли использовать закрытие с вечно? –