Я создал класс утилиты, который я использую для извлечения данных из api и хранилища в кеше с помощью метода Cache::put()
. Код для хранения данных в кеше показан ниже.Кэш Laravel при использовании memcached не возвращает те же данные при доступе к контроллеру против модели
protected static function cacheData(array $data)
{
foreach ($data as $id => $value)
{
Cache::put('ADWORDS_DATA_' . $id, $value, 60 * 6);
}
}
Эти данные могут быть получены с помощью Cache::get()
в лудильщика. Но когда я пытаюсь получить данные из кеша в методе контроллера, подобном этому,
$campaigns = Auth::user()->campaigns()->with(['adwords', 'facebookAds'])->get();
$data = [];
foreach ($campaigns as $campaign)
{
$data[] = Cache::get('ADWORDS_DATA_' . $campaign->adwords->account_number);
}
запрос возвращает null. Я уже изменил среду своего приложения на этап локализации, чтобы сохранить кеш от каждого запроса, но я не могу понять, почему данные, хранящиеся в кеше, доступны с помощью методов модели и инструментов, но не через контроллер.
Любая помощь была бы принята с благодарностью.
Я просто попробовал это для вас, используя несколько разных типов драйверов. Я пробовал его с помощью 'file',' array', 'redis' и' memcached'. Единственное, что я мог воспроизвести, это «массив». Остальные, казалось, работали правильно. Возможно, это имеет какое-то отношение к разрешениям, или кто является исполняемым владельцем. – Ohgodwhy