Cache::remember с пагинацией и scopeSearch

260
09 августа 2017, 21:08

Добрый день всем! В общем, понадобилось реализовать Поиск, пагинацию и кэш. Пришла и нагуглилась идея о том, что нужно бы отследить на какой мы странице, чтобы знать какой кэш кушать Вьюхе. Потом пришло понимание, что у меня есть ещё один параметр, который не учтён - поиск. Он реализован через scopeSearch. С ним урл становится иным(логично), принимает вот такой вид: .../products?s=iph&page=2. Вопрос:: Как же всё-таки учесть доп параметр? По аналогии со страницами не вышло. Писал, что метод не тот и всё в таком роде Собственно нынешняя реализация:

public function index(Request $request)
{
$s = $request->input('s');
$products = Cache::remember('products-'.  \Request::input('page'), 1, function () use($s) {
return Product::latest()->search($s)->paginate(4);
;});
$acproducts = Cache::remember('products-'.  \Request::input('page'), 1, function () use($s) {
return Product::active()->orderBy('created_at', 'desc')->paginate(5);
;});

    return view('products.index', compact('products','acproducts', 's'));
}

А вот вариант такого рода хотелось бы иметь:

public function index(Request $request)
{
$s = $request->input('s');
$products = Cache::remember('products-'.  \Product::search('s')."&".Request::input('page'), 1, function () use($s) {
return Product::latest()->search($s)->paginate(4);
;});
$acproducts = Cache::remember('products-'.  \Request::input('page'), 1, function () use($s) {
return Product::active()->orderBy('created_at', 'desc')->paginate(5);
;});


    return view('products.index', compact('products','acproducts', 's'));
}

Пожалуйста, помогите разобраться. Заранее благодарен

Answer 1

В поле key нужно было ввести вот эту строку

products_p'. \Request::input('page') . '_s' . \Request::input('s')

READ ALSO
Запретить валидацию в комментариях MODX

Запретить валидацию в комментариях MODX

Всем приветПодскажите, как убрать поле в комментариях на сайте, чтобы оно не проходило валидацию? Есть сайт на MODX

269
обновление php внутри ветки. CentOS 7

обновление php внутри ветки. CentOS 7

Везде по интернету подробно расписано как устанавливать phpУ меня вопрос такой - вот вышла новая версия php (была 7

282