Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 08.08.2017 13:54:31

Интересный вопрос о составном key для кэша

В общем, понадобилось реализовать Поиск, пагинацию и кэш. Пришла и нагуглилась идея о том, что нужно бы отследить на какой мы странице, чтобы знать какой кэш кушать Вьюхе. Потом пришло понимание, что у меня есть ещё один параметр, который не учтён - поиск. Он реализован через 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'));
       
    }

Не в сети

#2 08.08.2017 13:56:26

Re: Интересный вопрос о составном key для кэша

Хотел сделать так, о не вышло :

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'));
       
    }

Изменено skomyanov (08.08.2017 14:04:07)

Не в сети

Подвал раздела