【发布时间】:2016-12-13 10:38:27
【问题描述】:
虽然提出了类似的问题,但这里的上下文不同。 Laravel Eloquent with and find
我现在遇到的问题是,当我使用 “find” 时,它返回的是对象而不是集合。
MyModel::find($myId)
但是当我使用 "with" 时,它会返回我的集合。不应该是一个急切加载所有必需数据的对象吗?
MyModel::find($myId)->with('notes')
我希望它返回一个带有急切加载笔记的对象。但它返回的集合。所以我必须得到集合的第一个对象,然后是急切加载的笔记。但是当我做类似的事情时
MyModel::find($myId)->with('notes')->first()
它返回单个对象,这是正确的,但对我来说没有意义,因为我在 laracast 论坛上读到 "first" 在幕后使用 "find"。那么我真的需要同时使用 "find" 和 "first" 来获取所需的数据还是我做错了什么?
PS我使用的是 Laravel 5.3
【问题讨论】:
-
试试 MyModel::with('notes')->find($myId);
-
太好了,它确实奏效了。但是您能解释一下这两种方法背后的流程吗?
-
Alexey Mezenin 已经提到过。
-
是的,刚刚看到。非常感谢。