我想从表末尾获取行,但是在 asc
中订单。
我们有以下数据:结果:1, 2, 3, 4, 5, ..., 99。
Message::select()->where('thread_id', $id)->orderBy('updated_at', 'asc')->get();
如果我们改变orderBy
至desc
并将其与 take(5)
一起使用,那么我们有: 结果:99, 98, 97, 96, 95。
Message::select()->where('thread_id', $id)->skip(0)->take(5)->orderBy('updated_at', 'desc')->get();
如何获得结果:95、96、97、98、99?
附:当然我可以用skip(95)->take(5)->orderBy('updated_at', 'asc')
来做到这一点,但是如何动态地做到这一点。
最佳答案
您必须对集合应用reverse()
方法,例如:
$messages = Message::select()->where('thread_id', $id)->skip(0)->take(5)->orderBy('updated_at', 'desc')->get();
$messages = $messages->reverse();
您还可以选择:
$messages = $messages->sortBy('updated_at');
关于php - Laravel,从末尾选择数据库,但按升序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42540258/