来自缓存 Laravel 5.2 的复杂 select
Complex select from cache Laravel 5.2
我找不到以下信息:如何从缓存 Laravel 5.
中创建复杂 select
我有疑问:
$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 获取我的公司进行分页。
我试过制作:
$companys = Cache::remember('companys', 30, function () {
return Company::with(['comments' => function ($query) {
$query->where('status', '=', 'done');
}])->withCount('comments')->has('comments')->inRandomOrder()->paginate(8);
});
但在这种情况下,分页的每一页都是同一家公司。
请帮帮我。
谢谢。
我的问题的解答:
$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);
});
我找不到以下信息:如何从缓存 Laravel 5.
中创建复杂 select我有疑问:
$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 获取我的公司进行分页。
我试过制作:
$companys = Cache::remember('companys', 30, function () {
return Company::with(['comments' => function ($query) {
$query->where('status', '=', 'done');
}])->withCount('comments')->has('comments')->inRandomOrder()->paginate(8);
});
但在这种情况下,分页的每一页都是同一家公司。
请帮帮我。
谢谢。
我的问题的解答:
$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);
});