【发布时间】:2021-08-30 18:47:40
【问题描述】:
我想知道是否有任何方法可以分页我在 Laravel 中执行的此查询并将其存储在缓存中。
我已经输入了->paginate(),但似乎缓存不会在 Eloquent 中返回,而是作为一个对象返回。我用gettype()检查了变量的类型。
这是我的职责。谁能帮帮我?
public function getProductsRecommendations($keywords)
{
$expiration = 10;
$keyName = 'productsRecommended';
$list = Cache::remember($keyName, $expiration, function () use ($keywords) {
return Product::query()->where(function ($productsAll) use ($keywords) {
if ($keywords) {
foreach ($keywords as $keyword)
$productsAll->orWhere('title', 'LIKE', '%' . $keyword . '%')->orWhere('description', 'LIKE', '%' . $keyword . '%')->orWhere('code', 'LIKE', '%' . $keyword . '%');
}
})->where('status', 'active')->get();
});
return $list;
}
【问题讨论】:
标签: laravel caching redis pagination