i am starting to create an ads site, i display 36 products images in a blade index with success ,but when i try add pagination i get this error Call to a member function lastPage() on int
.
AnnoncesController.php
JavaScript
x
public function index()
{
$categories = Category::all();
$annonces = Annonce::paginate(36);
$paginator = 36;
return view('landing-page')->with([
'categories' => $categories,
'annonces' => $annonces,
'paginator' => $paginator
]);
}
landing-page.blade.php
JavaScript
<div class="pagination pagination-sm pull-right">
@if($annonces->hasPages())
{{ $annonces->links() }}
@endif
</div>
@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
Advertisement
Answer
You are calling $paginator->lastPage();
and $paginator
is an integer, it should be $annonces->lastPage();
and this section should be
JavaScript
@if ($annonces->lastPage() > 1)
<ul class="pagination">
@if(($annonces->currentPage() > 1))
<li class="{{ ($annonces->currentPage() == 1) ? '' : '' }}">
<a href="{{ $annonces->url(1) }}"> << </a>
</li>
@endif
@for ($i = 1; $i <= $annonces->lastPage(); $i++)
<li class="{{ ($annonces->currentPage() == $i) ? 'current' : '' }}">
<a href="{{ $annonces->url($i) }}">{{ $i }}</a>
</li>
@endfor
@if(($annonces->currentPage() != $annonces->lastPage()))
<li class="{{ ($annonces->currentPage() == 1) ? '' : '' }}">
<a href="{{ $annonces->url($annonces->currentPage()+1) }}"> >> </a>
</li>
@endif
</ul>
@endif