【发布时间】: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->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')->orderBy('TTT')->paginate(32); -
正如 Viney 所说,您应该使用
orderBy()而不是sortBy()。
标签: php laravel pagination laravel-5.2 laravel-blade