尽管这里提出了类似的问题,但上下文不同。 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”来获取所需的数据还是我做错了什么?
P.S我使用的是 Laravel 5.3
最佳答案
使用这种方式获取带有集合的对象:
MyModel::with('notes')->find($myId);
https://laravel.com/docs/5.3/eloquent-relationships#eager-loading
这应该只返回查询构建器实例:
MyModel::find($myId)->with('notes')
关于Laravel Eloquent - 使用 "With"和 "find",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41119017/