首页 > 解决方案 > 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;
 }
  1. 用户可以是服务提供者。(可以属于一个组)
  2. 用户可以是个人的客户和/或可以属于一个组
  3. 一个组可以有服务提供者或客户端的类型
  4. 服务提供商对每个客户都有调查记录,这些记录将作为个人或团体进行审查。

标签: databaselaravellaravel-5eloquent

解决方案


推荐阅读