我是laravel的新手,我正在努力想出这个。我正在尝试按日期订购帖子并使用分页器。每当我删除分页符。它是按日期排序的,但是按照id的顺序将其添加回来,我想?
我的模特
class Post extends Model
{
//
protected $dates = ['date'];
}
我的控制器方法
public function show()
{
$posts = Post::orderBy('date','desc')->get();
return view('welcome',['posts' => Post::paginate(5)], compact('posts'));
}
答案 0 :(得分:3)
在检索所有帖子并对其进行排序后,您基本上会检索所有帖子然后对其进行分页。
您的代码如下所示:
public function show()
{
// retrieve posts and order them by date
$posts = Post::orderBy('date','desc')->get();
// retrieve posts again and paginate them
return view('welcome',['posts' => Post::paginate(5)], compact('posts'));
}
您有两种选择 -
获取帖子,订购它们,对它们进行分页,并将它们存储在您传递给视图的变量中:
public function show()
{
$posts = Post::orderBy('date','desc')->paginate(5);
return view('welcome', compact('posts'));
}
或者获取帖子,订阅它们并将它们分页并传递给视图:
public function show()
{
return view('welcome',[ 'posts' => Post::orderBy('date','desc')->paginate(5) ]);
}