我正在使用laravel 5.6
,我想让用户posts
获得comments
(仅id
字段)
用户模型
public function posts()
{
return $this->hasMany('App\Post');
}
发布模型
public function user()
{
return $this->belongsTo('App\User');
}
public function comments()
{
return $this->hasMany('App\Comment');
}
评论模型
public function post()
{
return $this->belongsTo('App\Post');
}
在我的控制器中,我使用此代码来获取用户帖子及其评论
$posts = $request->user()->posts()->with(['comments' => function($query) {
$query->select(['id']);
}]);
但它不起作用......
当我发表评论$query->select(['id']);
时,它可以正常工作但返回Comment
模型所有字段。我只想选择id
字段。
我在这里缺少什么?
答案 0 :(得分:1)
您还必须选择外键列(匹配结果所需):
$posts = $request->user()->posts()->with('comments:id,post_id');
答案 1 :(得分:-1)
如果您只想使用一列,则可以使用->pluck('id')