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

5

我正在使用 Laravel 8 开发我的项目,在这个项目中,我编写了以下方法从数据库中返回最新的5条数据:

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

这个链接中可以看出,我使用了latest(),因为我正在使用Laravel时间戳(created_at, updated_at),而且有一个方便的Eloquent/qb方法叫做->latest()用于显示最新的结果。

但是现在我遇到了这个错误:

BadMethodCallException Method Illuminate\Database\Eloquent\Collection::latest does not exist.

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

非常感谢任何您提供的想法或建议...

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


花一些时间阅读 Laravel 文档,真的可以让你了解 Laravel 的能力以及如何正确使用 API,从而提高未来的编码性能。 - Daniel Cheung
@DanielCheung 是的,我会这样做。谢谢。 - user7424490
2个回答

8

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

为了让你的代码正常工作,应该写成:

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

0
请使用这段代码。
Blog::latest()->simplePaginate(10);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接