【问题标题】: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 是的,我会这样做。谢谢。

标签: php laravel eloquent laravel-8


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-06-08
    • 2021-03-26
    • 1970-01-01
    • 2020-03-25
    • 2021-03-19
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多