database - Eloquent 模型 - 关系用户类别和帐户处理
问题描述
我有一个特定的场景,一个用户可以属于另一个用户、一个组或一个服务提供商。
例如。公司(是用户/服务提供商)有一个客户(也是一个用户),一个客户可能有成员(用户组)和一组用户(根据会员模式)。
在这种情况下使用雄辩模型的最佳方法是什么。
提前致谢。
我已经按照 youtube 上的 acedmind 尝试了用户角色,如下代码所示。
class Role extends Model
{
//Roles Model
//relationship with users
public function users()
{
return $this->belongsToMany('App\User','user_role','role_id','user_id');
}
}
and in User
//Roles relationship
public function roles()`enter code here`
{
return $this->belongsToMany('App\Role','user_role','user_id','role_id');
}
public function hasAnyRole($roles)
{
if(is_array($roles)){
foreach ($roles as $role) {
if ($this->hasRole($role)){
return true;
}
}
}else {
if ($this->hasRole($roles)){
return true;
}
}
return false;
}
public function hasRole($role)
{
if ($this->roles()->where('name',$role)->first()){
return true;
}
return false;
}
- 用户可以是服务提供者。(可以属于一个组)
- 用户可以是个人的客户和/或可以属于一个组
- 一个组可以有服务提供者或客户端的类型
- 服务提供商对每个客户都有调查记录,这些记录将作为个人或团体进行审查。
解决方案
推荐阅读
- c# - 使用 Dapper 查询单个项目并转换为模型
- python - 计算序列中的子序列数,其间有最大允许事件
- java - 有没有办法在Java中制作交替的正负数序列?
- windows - 资源取消链接后如何在windows中删除python 3.8共享内存文件
- outlook - Outlook 加载项在 Windows Server 的 2019 桌面客户端中不起作用
- python - 使用 rosbags-libary (PyPI) 创建包含图像和时间戳的 rosbag 文件,而不依赖于 ROS
- python - 在间隙处拆分时间序列数据(pd.Series)的更有效方法?
- android - 我在 react native 中制作了一个按钮来更改应用程序的语言。当我运行应用程序时它工作正常,但它在发布 apk 中不起作用
- react-native - 如何从堆栈导航中删除屏幕 React native
- javascript - 为什么数组读取值不存在?