访问模型关系时,以下内容之间有什么区别:
$post->comments
或者
$post->comments()
答案 0 :(得分:2)
https://laravel.com/docs/5.1/eloquent-relationships#one-to-one
一旦定义了关系,我们就可以检索相关记录 使用Eloquent的动态属性。动态属性允许您 访问关系的功能就像它们是定义的属性一样 模型
此:
$posts = $user->posts;
实际上与此相同:
$posts = $user->posts()->get();
像这样使用会导致获得关系实例:
$posts = $user->posts();
如果您想使用特定过滤器对其进行过滤,这可能很方便,因为您现在可以将查询构建器应用到它。
答案 1 :(得分:2)
使用$post->comments
,您可以访问属于特定帖子的collection条评论。
另一方面,使用$post->comments()
,您可以访问可查询的帖子模型的评论relation。
答案 2 :(得分:0)
使用$post->comments()
,您的对象为Illuminate\Database\Eloquent\Relations\{relationType}
(例如BelongsToMany)
但使用$post->comments
时,您的对象为Illuminate\Database\Eloquent\Collection
。