Php 选择关系列并使用方法eloquent laravel在内部查询

Php 选择关系列并使用方法eloquent laravel在内部查询,php,laravel,eloquent,laravel-6,Php,Laravel,Eloquent,Laravel 6,使用和方法来检索我卡在这里的关系: 我有三个表,news、users和news\u user: users: id, name, email, is_admin, role_id, internal_id, timestamps news: id, title, subtitle, slug, published, timestamps news_user: id, user_id, news_id, action_id, timestamps 如您所见,我创建了这

使用
方法来检索我卡在这里的关系:

我有三个表,
news
users
news\u user

users:
    id, name, email, is_admin, role_id, internal_id, timestamps

news:
    id, title, subtitle, slug, published, timestamps

news_user:
    id, user_id, news_id, action_id, timestamps
如您所见,我创建了这个
news\u user
作为一个透视表,并毫无问题地返回到我的API

News::where('slug', $slug)
        ->where('published', 1)
        ->with('users:id,name')
        ->firstOrFail();
它工作得很好,但我需要添加一个查询函数,以便仅检索执行特定操作的用户。我返回了特定的users列,现在它返回了所有users列,因为查询函数没有像以前那样给我选择列的选项

News::where('slug', $slug)
        ->where('published', 1)
        ->with(['users' => function($query){
                $query->where('action_id', 3);
            }])
        ->firstOrFail();
即使我将
users:id,name
添加到一起,这将返回所有列,但我无法执行
'users:id,name'=>函数。

如何仅检索此列


附言:如果您添加
$query->select('id,name'),我使用的是Laravel6.2

内部
函数($query)
有效吗?你解决了吗?不,只返回
“\”id,name\”:“id,name”,
主要问题是有一些列包含有关用户的信息,如
is\u admin
内部\u id
时间戳
,等等,我只是不想返回这些信息:(