Laravel orderBy日期在使用paginator时不起作用

时间:2016-08-26 20:43:29

标签: php laravel laravel-5.3

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

1 个答案:

答案 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) ]);
}