0

我是 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'));
    }
4

1 回答 1

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) ]);
}
于 2016-08-26T20:50:11.327 回答