虽然在这里提出了类似的问题但是在不同的背景下。 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
答案 0 :(得分:2)
以这种方式使用它来获取具有集合的对象:
MyModel::with('notes')->find($myId);
https://laravel.com/docs/5.3/eloquent-relationships#eager-loading
这应该只返回查询构建器实例:
MyModel::find($myId)->with('notes')