Laravel Eloquent - 使用“With”和“find”

时间:2016-12-13 10:38:27

标签: laravel eloquent

虽然在这里提出了类似的问题但是在不同的背景下。 Laravel Eloquent with and find

我现在的问题是,当我使用“find”时,它会返回对象而不是集合。

MyModel::find($myId)

但是当我使用“with”时,它会返回我的收藏品。不应该是一个热切加载所有必需数据的单个对象吗?

MyModel::find($myId)->with('notes')

我希望它能够通过急切加载笔记来返回单个对象。但它归还了这个系列。所以我必须得到该集合的第一个对象,然后是其中的热切加载的笔记。但是,当我做像

这样的事情
MyModel::find($myId)->with('notes')->first()

它返回单个对象,这是正确的,但对我来说没有意义,因为我在laracast论坛上看到“first”在场景背后使用“find”< / strong>即可。那么我真的需要一起使用“find”“first”来获取所需的数据,还是我做错了什么?

P.S 我正在使用Laravel 5.3

1 个答案:

答案 0 :(得分:2)

以这种方式使用它来获取具有集合的对象:

MyModel::with('notes')->find($myId);

https://laravel.com/docs/5.3/eloquent-relationships#eager-loading

这应该只返回查询构建器实例:

MyModel::find($myId)->with('notes')