加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何在使用雄辩时排除某些列

发布时间:2020-12-13 16:25:45 所属栏目:PHP教程 来源:网络整理
导读:当我使用雄辩时,我可以使用“where”方法,然后方法“get”来填充包含我在数据库中选择的对象. 我的意思是: $users = User::where('gender','M')-where('is_active',1)-get(['pseudo','email','age','created_at'])-toArray(); 在这里我可以选择我想要的“伪
当我使用雄辩时,我可以使用“where”方法,然后方法“get”来填充包含我在数据库中选择的对象.
我的意思是:
$users = User::where('gender','M')->where('is_active',1)->get(['pseudo','email','age','created_at'])->toArray();

在这里我可以选择我想要的“伪”,“电子邮件”等列.
但是我在laravel doc中想到的是做相反的方式.
这可能是这样的:

$users = User::where('gender',1)->notGet(['pseudo','created_at'])->toArray();

谢谢你的未来答案,并有一个美好的一天.

AFAIK在SQL中没有构建选项来明确排除列,所以Laravel无法做到这一点.但是你可以试试 this trick

更新

另一个诀窍是指定模型中的所有列

protected $columns = array('id','pseudo','email'); // add all columns from you table

public function scopeExclude($query,$value = array()) 
{
    return $query->select( array_diff( $this->columns,(array) $value) );
}

那你可以做:

$users = User::where('gender',1)->exclude(['pseudo','created_at'])->toArray();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读