php查询当前用户所有下级,Think PHP 获取用户的所有下级
博主在去年找工作面试中, 遇到了一个这样的问题, 最近项目开发也遇到了:
假如用户有很多个下级, 且这些下级并不是直属下级, 有可能是 "下级的下级" 也可能是 "下级的下级的下级" 下级是无限的, 所有的下级都可以继续招收下级.
那么问题来了, 怎么做到只查询一次数据库, 获取某个用户的所有下级.
博主的解决方法是, 使用家族谱.
A 用户自行注册, 所以家族谱是他自己的用户 ID, 即存库时该用户的家族谱是 |1|
B 用户注册, 邀请人是 A 用户, 此时需要将 A 用户的家族谱再加上自己的用户 ID, 即为 |1|2|
C 用户注册, 邀请人是 B 用户, 此时将 B用户的家族谱再加上自己的用户 ID, 即为 |1|2|3|
此时需要 A 用户的下级, 只需要在模型这样:public function getAllSubordinate($user_id)
{
// user_id 变量为 A 用户的 ID
// 当前用户 需要查询下级的用户
$row_user = $this->where('user_id', $user_id)->find();
$rows_user = $this->where('family_ids', 'like', "{$row_user['family_ids']}%");
dd($rows_user); // 这里就是全部下级了
}
其实非常简单, 只是用了模糊查询以及用户注册的时候做家族谱处理.
php查询当前用户所有下级,Think PHP 获取用户的所有下级相关推荐
- Android实战——第三方服务之Bmob后端云的集成、用户登陆、用户注册、获取用户、用户注销(一)
第三方服务之Bmob后端云的集成.用户登陆.用户注册.获取用户.用户注销(一) Bmob简介: 步骤一:Bmob集成 在www.bmob.cn注册一个用户,在网站后台创建一个应用,进去管理页面之后在设 ...
- tp5微信公众号获取用户openid_tp5+微信公众号获取用户基本信息
获取用户基本信息(UnionID机制) 获取用户基本信息(UnionID机制) 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯 ...
- html怎样获取用户手机号码,小程序如何获取用户手机号?
在小程序获客过程中,我们有非常多的应用场景希望获取当前访客的手机号,通过小程序提供的这一便利功能,可以大大增强我们的营销效果. 在小程序中,获取手机号有下面两种方式: 一.用户进入首页(或某一页面), ...
- 小程序获取用户头像大图 小程序获取用户头像模糊的问题 小程序自定义转发头像模糊 小程序自定义转发分享大图...
在开发小程序的时候,大家肯定有做过自定义转发分享图片的.我们现在做了一个名片小程序,需要做的一个功能就是,用户在转发分享自己的名片,在微信里显示的小程序缩略图,我们使用的是用户的微信头像,但是发现一个 ...
- php公众号用户关注,微信公众号获取用户信息(用户关注公众号)
一 获取用户基本信息 用户在关注公众号之后,你可以获取到用户的openID(加密后的微信号,每个用户对应每个公众号的openID是唯一的).通过openID可以获取到包括昵称.头像.性别.所在城市.语 ...
- php用户抽奖次数怎么做,获取用户剩余抽奖次数
# 获取用户剩余抽奖次数 user/queryRemainNum >[info] 此 API 用于获取用户在抽奖工坊中剩余的抽奖次数. ## **API 地址** >[info] http ...
- android获取app用户数据,Android 原生app获取用户授权访问Autodesk云应用数据
oAuth机制对于网站间的授权管理是很容易实现的,设置好app回调端口,当数据服务提供方拿到其用户授权,则返回授权码发送到回调端口.上一篇文章介绍了如何授权Forge app访问Autodesk 云应 ...
- php获取微信小程序用户头像,微信小程序获取用户头像+昵称+openid,小程序登录!附前端后端源码!...
做一款小程序,如果需要判断用户,当然要获取一些基本信息,例如头像,昵称,openid.所以本次案例就直接上代码了. 小程序前端 index.wxml 获取头像昵称 {{userInfo.nickNam ...
- JS获取按键的代码,Js如何屏蔽用户的按键,Js获取用户按键对应的ASII码(兼容所有浏览器)...
http://huazi.tcreator.info 原文网址:http://www.phpernote.com/javascript-function/297.html 在使用JavaScript做 ...
最新文章
- AD5933使用外部时钟获得更低的分析频率
- RESTful Web 服务 - 无状态
- python中分割字符串两种方法正则分组别名,如何在python中使用正则表达式模块将文本字符串分割成单词?...
- 如何删除JAVA集合中的元素
- LeetCode 1150. 检查一个数是否在数组中占绝大多数(二分查找)
- [译]MediaSession MediaController – Android TV 应用开发教程九
- 微信H5页面嵌入百度地图---解决手机的webKit定位,ios系统对非https网站不提供支持问题
- 文化艺术报新闻报道IT诗人(转)
- 解决Unable to find taglib [cr] for URI: [WBE-INF/tlds/testlib.tld]] with root cause的可能性方案
- 自动化脚本任务计划程序(Windows)
- c语言输入若干学生成绩 计算平均,从键盘输入若干名学生的成绩,当输入-1时结束,统计出及格人数...
- 什么是黎曼和?什么是定积分?
- 程序的优化 文字的减法
- 什么是优先级反转及解决方法
- sql server数据库练习
- 支付宝运营10元花呗红包活动被薅羊毛了
- 互联网创业如何起步(一)
- MISRA-C 2019
- seamless clone
- 现代A200(MoboDA3360)玩家宝典
热门文章
- 梁储定郊外,为官正派-太子少保南京吏部尚书记
- redis server服务端启动流程分析(一)
- 多媒体技术是利用计算机对文本图形,四川自考07311《多媒体技术》全真模拟试题(三)...
- mysql驱动如何编写_解读MySQL驱动加载逻辑
- java 方法的入口地址_Java 方法
- Sybase数据库数据导入导出命令
- linux apache tomcat ajp,详解Tomcat HTTP协议与AJP协议 | 《Linux就该这么学》
- java对接支付宝小程序支付
- [Unity3D]Unity3D游戏开发之从Unity3D到Eclipse
- CSS布局之浮动和定位