使用laravel根据用户类型来显示或隐藏字段

2020-09-03 12:32:16

在api开发中,有时候需要对自己以外的其他普通用户隐藏字段,比如隐藏手机号。而对于admin用户,则又不需要隐藏手机号。

所以,需要设计一种能够简单的根据不同用户来显示或隐藏字段的方式。

方法基于laravel实现

use IlluminateDatabaseEloquentModel;class User extends Model{ /**  * 重写toArray方法  */ public function toArray(){  //获取api用户  $me=app(Request::class)->user("api");  if ($me!=null)  {   if ($me instanceof AdminUser)   {    //如果是admin用户    //TODO:使用admin用户的显示规则   }else if($me instanceof User){    if ($me->id==$this->id)    {     //如果是自己     //TODO:使用面向自己的显示规则    }else{     //如果是其他普通用户     //TODO:使用面向其他普通用户的显示规则    }   }  }  return parent::toArray(); }}

这样实现后,就不需要针对每一个api去修改规则了

相关文章 大家在看