Комплексный выбор из кеша Laravel 5.2 - PullRequest
0 голосов
/ 23 марта 2019

Я не могу найти информацию о том, как сделать сложный выбор из кэша Laravel 5.

У меня есть запрос:

$companys = Company::with(['comments' => function ($query) {

            $query->where('status', '=', 'done');

            }])->withCount('comments')->has('comments')->inRandomOrder()->paginate(8);

Мне нужно кэшировать этот запрос.

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

Примерно так:

$cache_companys =  Cache::remember('companys', 30, function () {

          return Company::with('comments')->get();

        });

и после из $ cache_companys getмои компании для нумерации страниц.

Я попробовал сделать:

$companys = Cache::remember('companys', 30, function () {

          return Company::with(['comments' => function ($query) {

                $query->where('status', '=', 'done');

                }])->withCount('comments')->has('comments')->inRandomOrder()->paginate(8);
        });

, но в этом случае на всех страницах нумерации страниц были одни и те же компании.

Помогите мне, пожалуйста.

Спасибо.

1 Ответ

0 голосов
/ 23 марта 2019

решение моего вопроса:

$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;

$companys = Cache::remember('companys-'.$currentPage, 30, function () {

          return Company::with(['comments' => function ($query) {

                $query->where('status', '=', 'done');

                }])->withCount('comments')->has('comments')->inRandomOrder()->paginate(8);
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...