我尝试按升序选择最后5条消息(Laravel)但我收到此错误:Call to undefined method Illuminate\Database\Query\Builder::reverse()
这是我尝试过的:
$messages = Conversation::find($id)->messages()->orderBy("created_at", "desc")->take(5)->reverse();
答案 0 :(得分:3)
问题是您没有运行查询。 take()
方法是查询构建器方法而不是返回方法。
get()
是一个返回方法,它将运行查询返回一个集合first()
是一个返回方法,它将运行查询并返回一个模型实例值得注意的是reverse()
是一种收集方法,因此要修复代码,您需要执行以下操作:
$messages = Conversation::find($id)->messages()->orderBy("created_at", "desc")->take(5)->get()->reverse();
这样可以完美地工作,虽然我建议在实际运行方法之前检查该值,但除此之外,你还是很好。