【问题标题】:Specify a page for pagination - Laravel 4指定分页页面 - Laravel 4
【发布时间】:2013-06-27 12:31:17
【问题描述】:

我试图“记住”用户在浏览记录时所在的页面,以便当他返回列表时,他会返回到他离开的页面。

如何更改分页器的“当前页面”值?

我试过 Input::set('page', $x);但没有这样的功能。 $_GET['page'] = $x;也不行。

这是代码:

$list = Publication::orderBy($this->data['sort_by'], $this->data['order_by']);

foreach ($this->data['filter_data'] AS $field => $value) {
    $list->where($field, 'LIKE', "%$value%");
}

$this->data['list'] = $list->paginate(15);

【问题讨论】:

    标签: pagination laravel laravel-4


    【解决方案1】:

    试试

    $pager->setCurrentPage(2);
    

    【讨论】:

    • 我用的是Eloquent,但是好像没有这个方法
    【解决方案2】:

    可以通过DB连接调整分页环境的页面。

    DB::getPaginator()->setCurrentPage(2);
    

    不完全确定,但您也许可以使用类似的方法来检查您的模型。

    Publication::getConnection()->setCurrentPage(2);
    

    如果上述方法不起作用(从您的评论中可以看出),请使用 Publication 的实例。

    $publication = new Publication;
    
    $publication->getConnection()->setCurrentPage(2);
    
    $list = $publication->orderBy(...);
    

    【讨论】:

    • 两者都不起作用,我收到“调用未定义方法”错误和“不应静态调用非静态方法 xxx::getConnection(),假设 $this 来自不兼容的上下文”错误
    • 糟糕,更新了答案。那应该是DB::getPaginator()->setCurrentPage();
    • 这对我也有用。我正在使用Paginator::make。需要注意的是,您必须将此指令放在之前 Paginator::make。我被困在那里一段时间了,呵呵。
    • 你的第三个例子给了我:调用未定义的方法 Illuminate\Database\MySqlConnection::setCurrentPage(),前两个也给出了错误。
    【解决方案3】:

    我查看了 API --- 事实证明这在 2014 年变得更容易了。

    你所要做的就是设置

    Paginator::setCurrentPage(2);
    

    我相信在您致电->paginate() 之前的任何时间,它都应该覆盖?page= 设置(或未设置)的页面。

    【讨论】:

      猜你喜欢
      • 2019-10-24
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 2013-02-20
      • 2016-10-22
      • 1970-01-01
      相关资源
      最近更新 更多