i am starting to create an ads site, i display 36 products in a blade index with success, my problem is that 36 of the products display, the leftovers do not display, and i don’t know how to display the 2nd page and 3rd and so on depending on the number of pages to display the other products.
AnnoncesController.php
JavaScript
x
public function index()
{
$categories = Category::all();
$annonces = Annonce::paginate(36);
return view('annonces.index')->with([
'categories' => $categories,
'annonces' => $annonces,
]);
}
index.blade.php
JavaScript
<div class="row mix-grid thumbnails">
@foreach($annonces as $annonce)
<div class="col-md-3 col-xs-3 mix {{ $annonce->category->slug }} cat_all">
<a class="thumbnail-item">
<img src="{{ asset('storage/'.$annonce->image) }}" alt="category" />
</a>
<div class="thumbnail-data">
<h5>{{ $annonce->titre }}</h5>
<p>{{ substr($annonce->description, 0, 34) }}</p>
<div class="thumbnail-info" align="center">
<button class="btn btn-primary"><span class="fa fa-edit"></span></button>
<button class="btn btn-primary"><span class="fa fa-trash-alt"></span></button>
<button class="btn btn-primary"><span class="fa fa-eye"></span></button>
</div>
</div>
</div>
@endforeach
</div>
<ul class="pagination pagination-sm pull-right">
<li class="disabled"><a href="">«</a></li>
<li class="active"><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">»</a></li>
</ul>
Advertisement
Answer
You can do like this
JavaScript
@if($annonces->hasPages())
{{ $annonces->links() }}
@endif
If you want custom pagination, save the following as a new blade file and add name to ->links() method as a parameter.
JavaScript
@if ($paginator->lastPage() > 1)
<ul class="pagination">
@if(($paginator->currentPage() > 1))
<li class="{{ ($paginator->currentPage() == 1) ? '' : '' }}">
<a href="{{ $paginator->url(1) }}"> << </a>
</li>
@endif
@for ($i = 1; $i <= $paginator->lastPage(); $i++)
<li class="{{ ($paginator->currentPage() == $i) ? 'current' : '' }}">
<a href="{{ $paginator->url($i) }}">{{ $i }}</a>
</li>
@endfor
@if(($paginator->currentPage() != $paginator->lastPage()))
<li class="{{ ($paginator->currentPage() == 1) ? '' : '' }}">
<a href="{{ $paginator->url($paginator->currentPage()+1) }}"> >> </a>
</li>
@endif
</ul>
@endif