Русское сообщество разработки на 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