laravel 查询结果怎么过滤掉某个字段?

users 表包含字段: id, name, age, email
select 语句可以这样:SELECT id,name,age FROM users WHERE email = xxx@qq.com 来获取idnameage字段。
但是我想排除 email 字段,结果是获取id name age 字段,而不用把不排除的挨个写出来,要如何写?

还有,在没有select语句下,怎么实现排除字段?

User::query()->select();
这里会出错:为定义 select 函数。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

可以在序列化时吧某些属性隐藏掉

 $users = User::query()->get()->makeHidden('name')->toArray();

或者获取指定字段

 $users =  User::query()->get(['name','id']);
3年前 评论
讨论数量: 3

User::select(‘id’, ‘name’, ‘age’)->get();

User::query()->orderBy(‘name’, ‘desc’);

3年前 评论

可以在序列化时吧某些属性隐藏掉

 $users = User::query()->get()->makeHidden('name')->toArray();

或者获取指定字段

 $users =  User::query()->get(['name','id']);
3年前 评论
颠倒的玉石

model 文件里写一个 hidden 不就好了,或者查询出来后用集合的 except

  protected $hidden = [
    'email',
];

或者查询出来的数据用集合筛选

     collect($user)->except(['email'])->all()
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!