按升序选择最后一行

时间:2014-06-17 14:50:52

标签: laravel laravel-4

我尝试按升序选择最后5条消息(Laravel)但我收到此错误:Call to undefined method Illuminate\Database\Query\Builder::reverse()

这是我尝试过的:

$messages = Conversation::find($id)->messages()->orderBy("created_at", "desc")->take(5)->reverse();

1 个答案:

答案 0 :(得分:3)

问题是您没有运行查询。 take()方法是查询构建器方法而不是返回方法。

  • get()是一个返回方法,它将运行查询返回一个集合
  • first()是一个返回方法,它将运行查询并返回一个模型实例

值得注意的是reverse()是一种收集方法,因此要修复代码,您需要执行以下操作:

$messages = Conversation::find($id)->messages()->orderBy("created_at", "desc")->take(5)->get()->reverse();

这样可以完美地工作,虽然我建议在实际运行方法之前检查该值,但除此之外,你还是很好。