【问题标题】:Method links do not exist on Laravel paginationLaravel 分页上不存在方法链接
【发布时间】:2018-08-22 07:47:19
【问题描述】:

我正在尝试实现分页,在我添加 sortByDesc() 以及我雄辩的查询之前,它工作得非常好。

web.php(路由文件)

Route::get('/', function(){
  $posts = Post::simplePaginate(5)->sortByDesc("post_id"); 
  //sortByDesc("post_id") this causes the problem
}

当我在指定视图中使用{{ $posts->links() }} 准备分页视图时,出现以下错误-

方法链接不存在

如果我从查询中删除排序条件,它会完美运行。

这种行为背后的原因是什么?

【问题讨论】:

    标签: php laravel laravel-pagination


    【解决方案1】:

    尝试将排序放在查询而不是分页上:

    Post::orderBy('post_id', 'desc')->simplePaginate(5);
    

    【讨论】:

      【解决方案2】:

      延伸到@RossWilson 所说的内容。

      sortBy是集合函数,不是eloquent函数,正确的eloquent函数是orderBy

      另外,查看simplePaginate() 就像您正在执行get(), first(), find()

      你会先下 get 还是 order 呢? ...如果您想订购一个集合(使用sortBy),也许会得到,但由于simplePaginate 不会返回与get() 相同的集合,sortby 不起作用。并且可能会弄乱分页对象/集合。

      【讨论】:

        猜你喜欢
        • 2019-03-06
        • 2016-11-05
        • 2018-06-19
        • 1970-01-01
        • 2018-06-17
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        • 2016-07-14
        相关资源
        最近更新 更多