今天开发项目时,有个需求,了解了一个实用的函数,做个记录,希望对你有帮助
这是我们的一个后台用户表,业务逻辑是,用户需要指定多个上级,之前的同事加了leader_ids字段存储上级ID,
在开发项目过程中,需要用到用户之间的上下级关系时,突然发现有点懵逼了,习惯了json格式存储用户ID,
一时半会没反应过来怎么查询才好,好在网上找到了一个答案,发现了这个宝藏函数find_in_set(贴上代码):
//is_check 1 代表查看所有人
$check_user = User::get(['username', 'name'])->toArray();
if ($is_check != 1) { //只能查看自己的下级用户
$check_user = User::whereRaw('FIND_IN_SET(?,leader_ids)', $this->id)->
orwhere('id', $this->id)->get()->toArray();
}
这里我的逻辑是,除管理员外,用户只能看到自己下级用户数据,所以我就通过当前登录的用户ID,
查出他的所有下级用户,来进行接进来的功能开发。这里用的laravel 9.0 ,查找了一下文档,可以这样使用
whereRaw('FIND_IN_SET(?,leader_ids)', 需要查找的ID),其他框架,可能具体查看相应文档使用。
虽然不是很复杂,但是也想着记录一下,万一也有人遇到这个问题了呢,希望能帮助到你。