在 laravel 中进行预先加载时检索特定字段

Retrieve specific field while doing eager loading in laravel

我是 laravel 的新手,我正在使用 laravel 5.3 我有一个由 18 个字段组成的用户 table。任何时候我 运行 这一行:$article->load('comments.user', 'comments.replies.user');,我都会得到所有 18 个字段。有没有可能只检索 3 个字段(名称、用户名和 ID)?

我花了一些时间在 google 上搜索,但我找到的答案不起作用:

$article->load(array('comments.user' => function($query) {
  $query->select('id', 'name', 'username');
}));

$article->load('comments.user', 'comments.replies.user');可以更改为以下代码行,其中可以指定所需的字段

return $article->load(
    array(
        'comments.user' => function($query) {
            $query->select('id', 'name', 'username')->get();
        },
        'comments.replies.user' => function($query) {
            $query->select('id', 'name', 'username')->get();
        }
    )
);