【发布时间】:2013-01-07 02:38:00
【问题描述】:
我对 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。
这一切都非常令人困惑!我该如何解决这个问题?这些函数中的每一个都返回什么?如何正确链接它们?
【问题讨论】:
-
14.8k,对吗?我不是说你不能在这里问这个问题,而是阅读代码会解决你的问题,对你自己有更好的学习效果。
-
@markus-tharkun 也许,但我是 Laravel 的新手,我认为其他人可能会比我深入研究一些外星代码更好地解释它(我所拥有的并没有很好地记录看到/听到)。它对其他人有用。
-
另外,我看不出我的代表有多重要,4 年内获得 14k 不算什么,这就像平均每天 1 次投票...
-
老实说,我认为文档已经足够了。有一个入门类型指南,然后是 API。 laravel.com/api 有了这些和 PHP 经验,您可以非常快速地学习该框架。
-
@ShawnMcCool 这不是对文档进行扩展讨论的地方,但我非常不同意。我知道你对 Laravel 的参与度很高,因此可能很难从外部查看它,但是文档和代码中缺少一些必需/有用的关键信息。 (尽管我很喜欢这个框架,所以我会尽力帮助解决这个问题。)