 Laravel по-русски
Laravel по-русски
      
      
    Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
В общем, понадобилось реализовать Поиск, пагинацию и кэш. Пришла и нагуглилась идея о том, что нужно бы отследить на какой мы странице, чтобы знать какой кэш кушать Вьюхе. Потом пришло понимание, что у меня есть ещё один параметр, который не учтён - поиск. Он реализован через 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'));
       
    }Изменено skomyanov (08.08.2017 14:04:07)
Не в сети
Страницы 1