【问题标题】:Laravel return view to last Paginate pageLaravel 将视图返回到最后一个分页页面
【发布时间】:2018-04-10 22:41:48
【问题描述】:

我想返回一个带有分页紧凑变量的视图。

public function detail(Request $request){

    $data = DATA::paginate(10);
    $lastPage = $data->lastPage(); //How to use this variable?

    return view('user.data', compact('data'));
}

此分页的默认设置将转到第一页。

如何使用lastPage变量默认跳转到最后一页?

【问题讨论】:

  • 请给我们更多关于您想要什么的信息。为什么不直接在视图中使用$data->lastPage();
  • 我有一个视图页面将显示$data 作为分页。这可能不止一页,我希望我的用户在浏览此视图时直接转到最后一页。
  • 例如,我有 15 个项目,我的分页数是 10。第 2 页将有 5 个项目。我希望我的用户在被路由到我的视图时默认查看第二页上的最后 5 个项目。你能告诉我在我看来如何使用$data->lastPage()吗?

标签: php laravel pagination


【解决方案1】:

通过使用Paginator::currentPageResolver 可以默认重定向到一个视图并转到最后一页。

public function detail(Request $request){

    if($request->page == '') {
        $lastPage = Model::paginate($paginate)->lastPage();
        Paginator::currentPageResolver(function() use ($lastPage) {
            return $lastPage;
        });
    }

    $data = Model::paginate($paginate);
    return view('user.detail', compact('data'));
}

主要是设置if条件,防止用户切换页面时卡在同一个页面。

【讨论】:

  • 这很好用,但是有没有办法做到这一点而不必查询两次?例如,如果使用原始查询,我们将获取最后 n 条记录。
【解决方案2】:

您改为将 $lastPage 变量传递给视图。

【讨论】:

  • 我该怎么做?你能告诉我更多的细节吗?谢谢=)
  • 我能想到的一种方法是不要将 $data 变量传递给您的视图,而是传递 $lastPage 变量。在您看来,您应该有一个脚本可以自动更改分页上的选定页面,因为它会默认在第一页上。
  • 另一种方法是调用 Paginator 类的静态方法之一。 [在这里查看。] (stackoverflow.com/questions/31747801/…)
猜你喜欢
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 2017-06-05
  • 2018-09-15
  • 2017-07-04
  • 2014-08-03
  • 2019-04-29
  • 2017-12-21
相关资源
最近更新 更多