Paginate数据库输出从后到前 - Laravel

时间:2014-07-20 12:59:53

标签: php postgresql laravel blade

所以我在控制器中有这个

public function new_function(){
        $messages = Message::where('condition','=', 1)->paginate(20);
        return View::make('folder.template')->with(array('messages' => $messages ));
    }

它输出到类似这样的刀片模板

@foreach($messages as $message)
                            <tr>
                                <td>{{ $message->created_at }}</td>
                                <td><a href="#">{{ $message->message_id }}</a></td>
                                <td>{{ $message->name }}</td>
                                <td>{{ $message->phone }}</td>
                                <td>{{ $message->email }}</td>
                                <td>{{ $message->message }}</td> 
                            </tr>
@endforeach

当它输出时,DB中的最新条目位于最后一页,这非常烦人。有什么方法可以让它输出,所以最新的消息首先输出到页面上,最旧的消息输出到最后一页?

谢谢!

2 个答案:

答案 0 :(得分:0)

您必须按相反的顺序按创建日期订购结果:

$messages = Message::where('condition','=', 1)->orderBy('created_at', 'desc')->paginate(20);

答案 1 :(得分:0)

您的查询结果需要 desc结束创建时的有序,例如:

$messages = Message::where('condition','=', 1)->orderBy('created_at', 'desc')->paginate(20);

以便您先获得最后一个结果。