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 кеширование работало отлично.

Другие вопросы по тегам