2015-07-31 10 views
16

Bunun üzerinde çok uzun süredir sonuç yok. Denedim.Laravel 5.1 Sayfalandırma için geçerli sayfa belirtme

`\Illuminate\Pagination\Paginator::setCurrentPage($current_page);` 

döner Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()

\Paginator::setCurrentPage($current_page);

döner Call to protected method Illuminate\Pagination\Paginator::setCurrentPage()

\DB::getPaginator()->setCurrentPage($current_page);

döner call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Database\MySqlConnection' does not have a method 'getPaginator'

$tmp = new Post(); $tmp->getConnection()->setCurrentPage($current_page);

döner Benim sayfayı belirtebilirsiniz nasıl call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Database\MySqlConnection' does not have a method 'getPaginator'

? Manuel olarak belirtmem gerek. Ben $model->find()->paginate($per_page, $page)

+1

arayabilir, ben ben ile çalıştırmak zorunda – Adam

cevap

20

Eğer senin UserController yılında sayfalandırmamayı $users varsayalım kadar kolay olmasını umduğu

, yapmanız olabilir:

public function index() 
{ 
    $currentPage = 3; // You can set this to any page you want to paginate to 

    // Make sure that you call the static method currentPageResolver() 
    // before querying users 
    Paginator::currentPageResolver(function() use ($currentPage) { 
     return $currentPage; 
    }); 

    $users = \App\User::paginate(5); 

    return view('user.index', compact('users')); 
} 

bu yukarıda laravel 5.0 ve uygulanır inanıyoruz. Bunu kontrol etmeliyim.

+2

dışarı çalışıyorsanız size bildiririz '\ Illuminate \ Pagination \ Paginator :: currentPageResolver' ise, mevcut ad alanında sınıf için arama yaptı. '\ Paginator 'ile sınıfın bulunmadığını söyledi. Bu şekilde çalışır! – Shane

+3

Shane, denetleyicinizin üst kısmındaki sınıfı 'içe aktarmış' olabilirsiniz: 'Illuminate \ Pagination \ Paginator;' – kishanterry

+0

Perfect. Teşekkür ederim. –

23

Builder Sınıf vardır:

public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) 

Sen de bu sorun yaşıyorum

Model::find(...)->paginate($per_page, ['*'], 'page', $page); 
+2

Daha basit ve açık bir yaklaşım. – EGurelli

+0

Evet, bu yaklaşım daha iyi. Teşekkürler @PATROMO. – GAD

+0

Müthiş. Teşekkürler @Patromo. –