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
,时间戳
,等等,我只是不想返回这些信息:(