我对 Laravel 的 Eloquent ORM 中的各种函数以及它们返回的内容感到困惑。我有一个博客的帖子模型 - 如果我写了以下任何内容,那么我会返回所有帖子的数组:
$posts = Post::all();
$posts = Post::get();
$posts = Post::with('user')->all();
但是,如果我链接其他一些方法,它就不起作用。例如,这会给出一个未处理的异常错误:“方法 [all] 未在 Query 类上定义。”
$posts = Post::with('user')->order_by('updated_at', 'desc')->all();
如果我使用 paginate 函数,我根本不会得到结果数组。
$posts = Post::with('user')->order_by('updated_at', 'desc')->paginate(5);
// index.blade.php
@foreach ($posts as $post)
{{ $post->id }}
@endforeach
我收到错误消息:“尝试获取非对象的属性”。原来数据在$posts->results
,不是$posts
。
这一切都非常令人困惑!我该如何解决这个问题?这些函数中的每一个返回什么以及如何正确链接它们?