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