Laravel 8:方法 Illuminate\Database\Eloquent\Collection::latest 不存在

Posted

技术标签:

【中文标题】Laravel 8:方法 Illuminate\\Database\\Eloquent\\Collection::latest 不存在【英文标题】:Laravel 8: Method Illuminate\Database\Eloquent\Collection::latest does not existLaravel 8:方法 Illuminate\Database\Eloquent\Collection::latest 不存在 【发布时间】:2021-05-30 09:41:39 【问题描述】:

我正在使用 Laravel 8 开发我的项目,并且在这个项目中,我使用此方法从数据库返回 最新 数据,限制 5 个结果:

public function index()
    
        $posts = Blog::all()->latest()->limit(5);;
        return view('blog', compact('posts'));
    

如您所见,我使用了latest(),因为我使用的是 Laravel 时间戳(created_at,updated_at),正如this 链接所说,有一个方便的 eloquent/qb 方法称为 ->latest() 用于显示最新结果。

但现在我得到了这个错误:

BadMethodCallException 方法 Illuminate\Database\Eloquent\Collection::latest 不存在。

那么这里出了什么问题?我该如何解决这个问题?

非常感谢你们的任何想法或建议......

提前致谢。

注意,我在Controller顶部也使用了Illuminate\Support\Facades\DB;,但没有解决问题!

【问题讨论】:

花一些时间阅读 Laravel 文档确实有助于了解 Laravel 的功能以及如何正确使用 API,以提高未来的编码性能。 @DanielCheung 是的,我会这样做。谢谢。 【参考方案1】:

latest() 是一个Eloquent\Builder 方法。 Blog::all() 是一个 Eloquent\Collection 实例。

为了让您的代码正常工作,它应该是:

Blog::latest()->limit(5)->get();

【讨论】:

以上是关于Laravel 8:方法 Illuminate\Database\Eloquent\Collection::latest 不存在的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8 - 此路由不支持 POST 方法。支持的方法:删除

laravel 8:插入方法在 eloquent 中获取最后一个插入 id(插入方法)

方法 App\Http\Controllers\HomeController::home 不存在。 [Laravel 8]

post 方法在 laravel 8 中无法使用 react native for android

Laravel 8:方法 Illuminate\Database\Eloquent\Collection::latest 不存在

路由类型资源 Laravel 8 中方法的默认参数