2015-01-16 25 views
22

laravel4 uygulamasını laravel'e aktarmaya çalışıyorum 5. Önceki sürümde sayfalandırma URL'leri oluşturmak için aşağıdaki yöntemi kullanabilirdim. kontrol olaraklaravel 5 pagination nasıl kullanılır?

:

$this->data['pages']= Page::whereIn('area_id', $suburbs)->where('score','>','0')->orderBy('score','desc')->paginate(12); 

ve görünümü ile veri dizisi, dövme sonra

görüş
olarak

kullanıcı olabilir:

{{$pages->links()}} 

laravel 5, yaparak Bu, aşağıdaki hatayla sonuçlanır

ErrorException in AbstractPaginator.php line 445: 
call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Support\Collection' does not have a method 'links' 

Burada neleri kaçırdığımı bilmiyorum, birileri yardım edebilir mi?

+3

Laravel 5'in kararlı olmasını beklemem gerekiyor çünkü bazı hatalar var ve temel kod değişebilir. –

+0

@ClaudioLudovicoPanetta bence bu ay çıkacak :). Sadece değişikliklerle senkronize olmak istedim. Ancak üretim için 4.2 kullanıyor. –

+1

senin sorunun daha bir Laravel sorunu sizinki gibi görünüyor, ben bir çözüm, brb için sizi çoğaltmaya çalışacağız. –

cevap

56

laravel 5'te hiçbir yöntem "bağlantıları" var deneyebileceğiniz bu

{!! $pages->render() !!} 
+12

{!! $ pages-> render() !!} bir sayı ekleyecektir, hile yaptı, diğer sözdizimi, laravel5'de html'den kaçar. teşekkürler –

+0

Sonunda basit bir sayfalama için bir çözüm, bu yeni "5 php dosyaları oluşturmak, bir sınıf uygulamak ve 200 satırlık kod yazmak". EN SONUNDA! Teşekkür ederim. – hfingler

+0

bu işe yaramıyor. Kullanmadan önce hazırlamam gereken bir şey var mı? – Muhaimin

-5

Merhaba sayfalandırmada kodum var: görünümünde Kullanım:
@include ('pagination.default', [ 'paginator' => $ kullanıcıları])

Görüntüleme/sayfalama diğer çerçeveler içinde/default.blade.php

@if ($paginator->lastPage() > 1) 
    <ul class="pagination"> 
     <!-- si la pagina actual es distinto a 1 y hay mas de 5 hojas muestro el boton de 1era hoja --> 
     <!-- if actual page is not equals 1, and there is more than 5 pages then I show first page button --> 
     @if ($paginator->currentPage() != 1 && $paginator->lastPage() >= 5) 
      <li> 
       <a href="{{ $paginator->url($paginator->url(1)) }}" > 
        << 
       </a> 
      </li> 
     @endif 

     <!-- si la pagina actual es distinto a 1 muestra el boton de atras --> 
     @if($paginator->currentPage() != 1) 
      <li> 
       <a href="{{ $paginator->url($paginator->currentPage()-1) }}" > 
        < 
       </a> 
      </li> 
     @endif 

     <!-- dibuja las hojas... Tomando un rango de 5 hojas, siempre que puede muestra 2 hojas hacia atras y 2 hacia adelante --> 
     <!-- I draw the pages... I show 2 pages back and 2 pages forward --> 
     @for($i = max($paginator->currentPage()-2, 1); $i <= min(max($paginator->currentPage()-2, 1)+4,$paginator->lastPage()); $i++) 
       <li class="{{ ($paginator->currentPage() == $i) ? ' active' : '' }}"> 
        <a href="{{ $paginator->url($i) }}">{{ $i }}</a> 
       </li> 
     @endfor 

     <!-- si la pagina actual es distinto a la ultima muestra el boton de adelante --> 
     <!-- if actual page is not equal last page then I show the forward button--> 
     @if ($paginator->currentPage() != $paginator->lastPage()) 
      <li> 
       <a href="{{ $paginator->url($paginator->currentPage()+1) }}" > 
        > 
       </a> 
      </li> 
     @endif 

     <!-- si la pagina actual es distinto a la ultima y hay mas de 5 hojas muestra el boton de ultima hoja --> 
     <!-- if actual page is not equal last page, and there is more than 5 pages then I show last page button --> 
     @if ($paginator->currentPage() != $paginator->lastPage() && $paginator->lastPage() >= 5) 
      <li> 
       <a href="{{ $paginator->url($paginator->lastPage()) }}" > 
        >> 
       </a> 
      </li> 
     @endif 
    </ul> 
@endif 
+0

bak, iyi kopyalamadım ... kod gri alandan önce başlıyor. – diego

+1

Her zaman [düzenle] (http://stackoverflow.com/posts/30744604/edit) kodunuzu değiştirebilirsiniz! – ZygD

4

, sayfalama v olabilir acı verici. Laravel 5 onu çok kolaylaştırıyor.

<?php echo $users->render(); ?> 

olacak: Bu kodu kullanabilirsiniz ondan sonra ...

public function index() 
{  
     $users = DB::table('books')->simplePaginate(5); 
     //using pagination method 
     return view('index', ['users' => $users]); 
} 

: kullanmaktan için, öncelikle size veritabanından veri çağırma Denetleyiciniz kodunda bir değişiklik yapmak zorunda Basit Laravel 5 güzelliğini kullan.

-1
@if ($posts->lastPage() > 1) 
     <nav aria-label="Page navigation"> 
      <ul class="pagination"> 
       @if($posts->currentPage() != 1 && $posts->lastPage() >= 5) 
       <li> 
        <a href="{{ $posts->url($posts->url(1)) }}" aria-label="Previous"> 
         <span aria-hidden="true">First</span> 
        </a> 
       </li> 
       @endif 
       @if($posts->currentPage() != 1) 
       <li> 
        <a href="{{ $posts->url($posts->currentPage()-1) }}" aria-label="Previous"> 
         <span aria-hidden="true">&#x3C;</span> 
        </a> 
       </li> 
       @endif 
       @for($i = max($posts->currentPage()-2, 1); $i <= min(max($posts->currentPage()-2, 1)+4,$posts->lastPage()); $i++) 
       @if($posts->currentPage() == $i) 
       <li class="active"> 
       @else 
       <li> 
       @endif 
        <a href="{{ $posts->url($i) }}">{{ $i }}</a> 
       </li> 
       @endfor 
       @if ($posts->currentPage() != $posts->lastPage()) 
       <li> 
        <a href="{{ $posts->url($posts->currentPage()+1) }}" aria-label="Next"> 
         <span aria-hidden="true">&#x3E;</span> 
        </a> 
       </li> 
       @endif 
       @if ($posts->currentPage() != $posts->lastPage() && $posts->lastPage() >= 5) 
       <li> 
        <a href="{{ $posts->url($posts->lastPage()) }}" aria-label="Next"> 
         <span aria-hidden="true">Last</span> 
        </a> 
       </li> 
       @endif 
      </ul> 
     </nav> 
     @endif 
+0

Biraz açıklama ver, cevap birazdan açıklanmalı. –