Laravel Caching не хранит массив результатов базы данных - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь кэшировать запрос к базе данных, как указано ниже (Laravel 5.7):

Cache::remember('footer_pages', 180, function () {
    DB::table('pages')->select('id', 'title')->where(array('status' => 'Published', 'menu_position' => 'Footer'))->orderBy('sort', 'ASC')->get();
});

Но Cache пуст.Пожалуйста, помогите мне найти, какую ошибку я совершил.

1 Ответ

0 голосов
/ 06 декабря 2018

Функция запоминания будет хранить результат обратного вызова в кеше, если предусмотрен обратный вызов.

Это означает, что вам нужно, чтобы ваш обратный вызов возвратил результат, который вы хотите сохранить:

Cache::remember('footer_pages', 180, function () {
    return DB::table('pages')->select('id', 'title')->where(array('status' => 'Published', 'menu_position' => 'Footer'))->orderBy('sort', 'ASC')->get();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...