Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте.
Столкнулся с проблемой. Есть вот такой код
$products = Product::where('category_id', $category->id)->paginate(7);
Если далее работать с переменной $products, то в ней находится 7 товаров из 30, а как получить все 30 товаров?
Здравствуйте.
Столкнулся с проблемой. Есть вот такой код$products = Product::where('category_id', $category->id)->paginate(7);
Если далее работать с переменной $products, то в ней находится 7 товаров из 30, а как получить все 30 товаров?
$products = Product::where('category_id', $category->id)->get();
вроде логично
Не в сети
Alex_01 пишет:Здравствуйте.
Столкнулся с проблемой. Есть вот такой код$products = Product::where('category_id', $category->id)->paginate(7);
Если далее работать с переменной $products, то в ней находится 7 товаров из 30, а как получить все 30 товаров?
$products = Product::where('category_id', $category->id)->get();
вроде логично
Логично это да) Мне нужно оставить пагинацию,и получить при этом все товары, т.к. после выше представленного кода идет вот этот
$ids = $products->lists('id');
$brands = $this->brands($ids);
А все вместе выглядит так
public function showCategory($slug)
{
$category = Category::with('catalogs')->FindBySlug($slug);
$products = Product::where('category_id', $category->id)->paginate(7);
$ids = $products->lists('id');
$brands = $this->brands($ids);
return view('category', compact('category', 'brands', 'products'));
}
public function brands($ids = [])
{
return Brand::whereHas('products', function($q) use($ids)
{
$q->whereIn('id', $ids);
}
)->get();
}
}
Вот и получается что не все производители выходят,а только те которые на 1 странице с товарами
Можно сделать так:
$products = Product::where('category_id', $category->id)->paginate();
После чего пагинацию можно выводить с помощью перечисленных здесь методов (см. Additional paginate methods). Список можно получить из $products:
$ids = $products->pluck('id');
Не используйте lists(), он был deprecated в 5.2 и в 5.3 он уже не работает. Используйте pluck() вместо него.
Изменено AlexeyMezenin (24.08.2016 18:52:35)
Не в сети
Можно сделать так:
$products = Product::where('category_id', $category->id)->paginate();
После чего пагинацию можно выводить с помощью перечисленных здесь методов (см. Additional paginate methods). Список можно получить из $products:
$ids = $products->pluck('id');
Не используйте lists(), он был deprecated в 5.2 и в 5.3 он уже не работает. Используйте pluck() вместо него.
Спасибо, попробую с вашим способом.
Можно сделать так:
$products = Product::where('category_id', $category->id)->paginate();
После чего пагинацию можно выводить с помощью перечисленных здесь методов (см. Additional paginate methods). Список можно получить из $products:
$ids = $products->pluck('id');
Не используйте lists(), он был deprecated в 5.2 и в 5.3 он уже не работает. Используйте pluck() вместо него.
Не выходит. Пробую так
$products = Product::where('category_id', $category->id)->paginate();
а потом во вью
{!! $products->render(7) !!}
И он выкидывает ошибку
Argument 1 passed to Illuminate\Pagination\LengthAwarePaginator::render() must be an instance of Illuminate\Contracts\Pagination\Presenter, integer given, called in W:\domains\hotprice.app\storage\framework\views\0cb26ddbe658867c1a11b3344b301698ecfde7f4.php on line 103 and defined (View: W:\domains\demo.app\resources\views\category.blade.php)
а потом во вью
{!! $products->render(7) !!}
И он выкидывает ошибку
Я написал выше, что при таком способе нужно использовать другие методы для отрисовки пагинации, они перечислены по ссылке выше. Либо делать свой класс, который реализовывает Illuminate\Contracts\Pagination\Presenter и передавать его в render(). Дело в том, что если использовать путь, описанный мной выше, в переменной хранится объект Illuminate\Pagination\LengthAwarePaginator вместо Illuminate\Pagination\Paginator, который получаешь при использовании стандартной пагинации (->paginate(15)). См. здесь подробнее.
Изменено AlexeyMezenin (26.08.2016 15:34:29)
Не в сети
Не в сети
}%Алексей, давай, пожалуйста, ссылки на **русскую** документацию, т.к. здесь подавляющее большинство английский не знает. Тем более вся документация переведена вплоть до 5.2.
((https://laravel.ru/docs/v5/pagination#ручное https:~//laravel.ru/docs/v5/pagination#ручное))
Хорошо, буду на русскую давать.
Не в сети
Страницы 1