Laravel 5.6 Cache:: RememberForever не кэширует данные с переменным ключом
Использование Laravel 5.6 для кеширования запросов с использованием драйвера memcached. Когда я использую переменную в имени ключа, результаты никогда не кэшируются, и он использует вызов базы данных, но тот же запрос работает с 'test' в качестве имени ключа. Что мне не хватает?
Не работает...
/**
* Get one id
* @param $id
* @return \Illuminate\Database\Eloquent\Model|null|object|static
*/
public function get($id)
{
return Cache::rememberForever('species-' . $id, function () use ($id) {
return AnimalSpecies::where('id', $id)->with('subspecies', 'morphs', 'combos', 'localities')->first();
});
}
Работает...
/**
* Get one id
* @param $id
* @return \Illuminate\Database\Eloquent\Model|null|object|static
*/
public function get($id)
{
return Cache::rememberForever('test', function () use ($id) {
return AnimalSpecies::where('id', $id)->with('subspecies', 'morphs', 'combos', 'localities')->first();
});
}
1 ответ
Моя проблема была неправильная переменная была передана, хотя $id
и это была строка с пробелом, которая была недопустимым символом. Однажды я прошел правильное числовое $id
кеширование работало отлично.