Laravel 4 nous propose un outil incorporé pour la pagination. mais il existe une balise :
<link rel=”prev” href=”?page=1″> <link rel=”next” href=”?page=3″>
Cette balise peut-être utilisée dans le <head>, pour aider google a lui faire comprendre que nous utilisons un système de pagination. Laravel ne prévoit rien 🙁 et bien tampis, je vais devoir coder 🙂
<head> est normalement dans notre layout principal , nous devons donc déclarer une section par :
<head> ... @section('hlinks') @show ... </head>
Dans notre vue avec pagination, nous avons normalement une section du type :
@section('content') @foreach($items as $item) <div class="row"> {{$item->Title }} </div> @endfor <div class="mesBtnsDePagination"> {{ $items->links() }} </div> @stop @section('hlinks') @include('hlinks', array('pagination'=>$items)) @stop
$items->links() affiche les liens vers les éventuelles autres pages de résultats. Nous passons donc $items a notre vue « hlinks » dans notre nouvelle section.
Dans notre nouvelle vue « app/views/hlinks.blade.php », $pagination est de type Illuminate\Pagination\Paginator nous pouvons donc facilement récupérer la page courante par la méthode ->getCurrentPage()
@if ($pagination instanceof Illuminate\Pagination\Paginator) @if (($page= $pagination->getCurrentPage())>1) <link rel="prev" href="{{Request::url()}}?page={{($page-1)}}"> @endif @if ($page<$pagination->getLastPage()) <link rel="next" href="{{Request::url()}}?page={{++$page}}"> @endif @endif
Voila, nous avons un système facile a réutiliser pour une meilleure déclaration de nos pages avec pagination dans nos moteurs de recherche.