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

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

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

方法基于laravel实现

use Illuminate\Database\Eloquent\Model;
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去修改规则了

以上这篇使用laravel根据用户类型来显示或隐藏字段就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • laravel-admin表单提交隐藏一些数据,回调时获取数据的方法

    表单提交时隐藏数据 读取最后一条的插入数据,但这样会造成如果两条数据同时插入,会并发出现错误 //忽略掉不需要保存的字段 $form->ignore(['column1', 'column2', 'column3']); 回调时获取数据 获取提交数据 // 在表单提交前调用 $form->submitted(function (Form $form) { //... }); //保存前回调 $form->saving(function (Form $form) { $form->u

  • laravel 字段格式化 modle 字段类型转换方法

    有些字段会用base64_decode加密存储,在每次查询都要查询出来解码.比较麻烦,laravel的model提供方法处理 在对应的model里面 格式为(set/get)(字段名称,注1)(Attribute) 注: 1.首字母大写,下划线的地方字母大写.例如product_json在这里的写法是ProductJson /** * 查询用户的时候name字段处理 * * @author Eric * @param $value * @return string */ public funct

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

    在api开发中,有时候需要对自己以外的其他普通用户隐藏字段,比如隐藏手机号.而对于admin用户,则又不需要隐藏手机号. 所以,需要设计一种能够简单的根据不同用户来显示或隐藏字段的方式. 方法基于laravel实现 use Illuminate\Database\Eloquent\Model; class User extends Model { /** * 重写toArray方法 */ public function toArray(){ //获取api用户 $me=app(Request::

  • jQuery实现根据类型自动显示和隐藏表单

    jquery实现表单根据单选按钮进行字段的动画切换,昨天写的,感觉比起初学时写的js/jquery有了很大进步..在最大化扩展性的情况下经可能使代码精简. html 复制代码 代码如下: <div class="control-group">                     <label class="control-label">类型:</label>                     <div class=

  • Laravel框架之解决前端显示图片问题

    最近做项目,功能是在用户上传图片成功后显示该图片,在本地测试(WAMP环境)下正常显示,但是部署到服务器上(LNMP)下无法显示. 因为LNMP环境下域名直接指向Laravel框架下的public目录,public为Laravel框架唯一对外公开的文件夹,而我的图片保存在storage/images,无法直接访问.查了官网文档发现可以在Linux下建立文件软链接,但试了以后没成功(可能是我打开的方式不对).而且这样做在WAMP下又不能显示图片了 最后,还是决定将图片保存在public/image

  • JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)

    问题:表单怎么在输入后立即验证,而不是提交后再验证那么不方便(网上搜到的要么是模棱两可,要么是残缺不全-) 方法:鉴于此,加上我个人的理解(注释)在上面. 截图: 代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户注册</title

  • Laravel重写用户登录简单示例

    本文实例讲述了Laravel重写用户登录的方法.分享给大家供大家参考,具体如下: class AuthController extends Controller { // use ThrottlesLogins, AuthenticatesAndRegistersUsers; protected $redirectTo = 'admin/index'; protected $loginView = 'admin/login'; protected $guard = 'admin'; protec

  • JSP实现简单的用户登录并显示出用户信息的方法

    本文实例讲述了JSP实现简单的用户登录并显示出用户信息的方法.分享给大家供大家参考.具体实现方法如下: login.jsp 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  <%  String path = request.getContextPath();  String basePath = request.

  • C#中DateTime日期类型格式化显示方法汇总

    本文汇总了常用的DateTime日期类型格式化显示方法,方便读者在使用的时候参考借鉴一下.具体如下所示: 1.绑定时格式化日期方法: <ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " > <ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE > </ASP:BOUNDCOLUMN

  • Laravel框架用户登陆身份验证实现方法详解

    本文实例讲述了Laravel框架用户登陆身份验证实现方法.分享给大家供大家参考,具体如下: laravel中检测用户是否登录,有以下的代码: if ( !Auth::guest() ) { return Redirect::to('/dashboard'); } 那Auth::guest是如何调用的呢? laravel用了Facade模式,相关门面类在laravel/framework/src/Illuminate/Support/Facades文件夹定义的,看下Auth类的定义: class

  • laravel 实现用户登录注销并限制功能

    1. 创建登录控制器 在项目根目录输入: php artisan make:controller Admin/LoginController 2.创建用户模块 以及数据库 php artisan make:model Model/Admin -m 运行之后 项目中会新增两个PHP文件 新创建了admins用户表,此用户表默认新建中只有主键,创建时间,编辑时间.我们接下来新加两个字段 用户名(username) 和密码(password). 在up函数中加上这两个字段,后面可以按自己的需求添加属性

  • laravel的用户修改密码与绑定邮箱的详细操作

    目录 一.修改密码 1.1 创建修改密码控制器 1.2 创建修改密码路由 1.3 测试效果 二.绑定邮箱 2.1 绑定邮箱控制器 2.2 创建对应路由 2.3 创建发送邮件的类 2.4 测试效果 一.修改密码 1.1 创建修改密码控制器 运行命令php artisan make:controller Auth/PasswordController 写入修改密码方法: /** * 修改密码 */ public function updatePassword(Request $request) {

随机推荐