我有一个Posts
表,其结构如下:
现在我正在尝试获取最新的帖子,该帖子显然是id = 2
的记录。
我在主题页posts.htm
中有此:
[builderList postLatest]
modelClass = "Me\Articles\Models\Posts"
scope = "scopeLatest"
scopeValue = "{{ :scope }}"
displayColumn = "title"
noRecordsMessage = "No records found"
detailsPage = "-"
detailsUrlParameter = "slug"
pageNumber = "{{ :page }}"
在我的模型Posts
中,我有:
public function scopeLatest($query)
{
return $query->orderBy('created_at','desc')->first();
}
但是这个正在返回两个记录。我也尝试使用latest()
return $query->latest();
这给了我错误:
Maximum function nesting level of '1000' reached, aborting!
甚至尝试传递latest('created_at')
之类的参数,但遇到相同的错误。
尝试转储dd($query->orderBy('created_at','desc')->first()->toSql())
并得到select * from posts where posts.deleted_at is null
first()
不限于1条记录?latest()
丢给我Maximum error
?这个版本是特定的错误吗?看来我找不到与此相关的文档。我有Laravel 5.5.48。我现在不确定我可以使用什么。也许我在这里做错了。我只需要获取最新的帖子。
您的问题的解决方案是使用->take(1)
方法。我相信Builder希望范围返回查询{[a collection of models]}
。花了一些时间后,我做了一些测试,这可能只是Builder插件中的一个缺陷。“