wenus
wenus

Reputation: 1505

Laravel paginate view don't see

I'm trying to do paginate in my view. I have reaaalyy alot of products, but I want only 12 per page. This is my controller:

 public function index(Request $request)
{
    $products = Product::paginate(12);

    if ($request->has('colorValue')) {

        $products->whereHas('productColors', function ($query) use ($request) {
            $query->whereIn('id', $request->colorValue);
        });
    }
    if ($request->has('heelValue')) {
        $products->whereHas('productHeelTypes', function ($query) use ($request) {
            $query->whereIn('id', $request->heelValue);
        });
    }
    if ($request->has('materialValue')) {
        $products->whereHas('productColors', function ($query) use ($request) {
            $query->whereIn('id', $request->materialValue);
        });
    }
    if ($request->has('maxPrice')) {
        if($request->maxPrice > 0){
            $products->where('sell_price_gross', '<=', $request->maxPrice);
        }

    }

    $colors = ProductColor::all();
    $heels = ProductHeelType::all();
    $materials = ProductMaterial::all();



    return view('product-list', ['products' => $products->get(), 'colors' => $colors, 'heels' => $heels, 'materials' => $materials]);
}
}

Now I'm trying to render it in my view:

<div class="paginate">
    {{$products->render()}}
</div>

But I have error:

Type error: Too few arguments to function 
Illuminate\Support\Collection::get(), 0 passed in /home/ania/Dokumenty/Projekty/viola-kiosk/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php on line 568 and at least 1 expected

What is wrong??

Upvotes: 1

Views: 261

Answers (1)

AddWeb Solution Pvt Ltd
AddWeb Solution Pvt Ltd

Reputation: 21681

I think you can try this change your return view code like:

return view(
    'product-list',
    ['products' => $products, 'colors' => $colors, 'heels' => $heels, 'materials' => $materials]
);

Upvotes: 1

Related Questions