【问题标题】:Use Pagination With sortBy in Laravel?在 Laravel 中使用带有 sortBy 的分页?
【发布时间】:2019-03-12 05:46:37
【问题描述】:

我正在尝试使用分页和 sortBy 在 Laravel 中的模型中提取几行。

这是我的控制器(没有排序):

    public function all(){
       $results['rows'] = Items::where('XXXX','YYYY')->paginate(32);
       return view('page', $results);
    }

这很好用。当我添加排序时:

public function all(){
       $results['rows'] = Items::where('XXXX','YYYY')->paginate(32)->sortBy('TTT');
       return view('page', $results);
    }

刀片模板上的分页崩溃。这是我在刀片中的代码:

<?php echo $rows->render(); ?>

我在这里阅读了一些带有类似问题的问题,尽管代码似乎与我的不同,并且无法弄清楚如何在我的代码上实现它。任何帮助将不胜感激。

【问题讨论】:

  • $rows-&gt;render(); ?这是不对的。在控制器中将 $results['rows'] 更改为 $rows
  • 但是我还有其他一些信息,我使用数组键遍历它们。 $results['rows']、$results['images'] 等。这非常有效。只有添加 sortBy 才能杀死它
  • 我认为您的订单不正确.... $results['rows'] = Items::where('XXXX','YYYY')->sortBy('TTT')->paginate (32);
  • @Avi 为什么要在获取它之后进行排序? sortBy() 是一种收集方法,使用 eloquent 方法 orderBy() 在 db 级别排序会不会更好。 $results['rows'] = Items::where('XXXX','YYYY')-&gt;orderBy('TTT')-&gt;paginate(32);
  • 正如 Viney 所说,您应该使用 orderBy() 而不是 sortBy()

标签: php laravel pagination laravel-5.2 laravel-blade


【解决方案1】:

正如 Viney 所说,使用 orderBy() 而不是 sortBy()

$results['rows'] = Items::where('XXXX','YYYY')->orderBy('TTT')->paginate(32);

【讨论】:

    猜你喜欢
    • 2014-01-30
    • 2021-08-06
    • 2021-12-13
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    相关资源
    最近更新 更多