如何更改Paginator的页面名称?

时间:2014-03-29 12:20:34

标签: laravel laravel-4

当前Paginator正在使用?page=N,但我想使用其他内容。我怎样才能改为?sida=N呢?

我看过Illuminate\Pagination\Environment并且有一个方法(setPageName())可以改变它(我假设),但是你如何使用它?

Paginator类中,有一种方法可以更改setBaseUrl()类中的基本URL(Environment),但是没有设置页面名称的方法。我是否真的需要扩展Paginator类才能更改页面名称?

3 个答案:

答案 0 :(得分:6)

刚刚遇到self.automaticallyAdjustsScrollViewInsets = NO; CGSize containerSize = self.view.frame.size; self.webView.frame = CGRectMake(0, 64, containerSize.wdith, containerSize.height - 65); 的同一问题,你可以传递这样的页面名称:

5.1

答案 1 :(得分:5)

就像你说过你可以使用setPageName方法:

Paginator::setPageName('sida');

您可以将其放在app/start/global.php

答案 2 :(得分:1)

那么在laravel 5中对我没有用,在laravel 5中你需要通过覆盖PaginationServiceProvider做更多的额外工作,因为queryName" page"在那里硬编码,所以首先在/ app / providers中创建新的PaginationServiceProvider,这是我的

<?php 
namespace App\Providers;

use Illuminate\Pagination\Paginator;
use Illuminate\Support\ServiceProvider as ServiceProvider;

class PaginationServiceProvider extends ServiceProvider {

    //boot 
    public function boot()
    {

        Paginator::currentPageResolver(function()
        {
            return $this->app['request']->input('p');
        });

    }//end boot 


     public function register()
    {
        //
    }


}

然后在您的控制器中,您可以执行此操作

$users = User::where("status","=",1)
         ->paginate(5)
         ->setPageName("p");