美文网首页
TP5 Model层拦截过滤

TP5 Model层拦截过滤

作者: 鹅鹅鹅的天歌 | 来源:发表于2018-07-26 16:46 被阅读0次

最近由于人员变动,接手了一个TP5的项目,有个需求是对入库的某些字段进行脱敏处理。比如身份证、银行卡等等

简单翻阅了下源码,发现所有的写入请求都是走的model层的save方法。于是准备重写save方法。但是看到save方法的实现发现里面有trigger语句。发现TP5和大多数框架一样,已经实现了切面。

查阅官方文档,model层可用的切面如下

before_insert 新增前
after_insert 新增后
before_update 更新前
after_update 更新后
before_write 写入前(新增和更新都会调用)
after_write 写入后(新增和更新都会调用)
before_delete 删除前
after_delete 删除后
注册的回调方法支持传入一个参数,当前示例模型对象,并且before_write,before_insert,before_update,before_delete返回false会结束执行。

很明显before_write符合我们自己的需求。实现如下

protected static function init()
    {
        //数据脱敏
        OrderInfo::event('before_write',function($model){
            if(!empty($model->IdCard) && !strpos($model->IdCard, '**'))
            {
                $len = strlen($model->IdCard) - 4;
                $len < 4 && $len = 4;
                $model->IdCard = substr($model->IdCard, 0, $len) . '****';
            }
            if(!empty($model->BankCardId) && !strpos($model->BankCardId, '**'))
            {
                $len = strlen($model->BankCardId) - 4;
                $len < 4 && $len = 4;
                $model->BankCardId = substr($model->BankCardId, 0, $len) . '****';
            }
            return true;
        }
    }

相关文章

  • TP5 Model层拦截过滤

    最近由于人员变动,接手了一个TP5的项目,有个需求是对入库的某些字段进行脱敏处理。比如身份证、银行卡等等 简单翻阅...

  • TP5 Model 功能总结

    简介 tp5的model只做业务层操作,不做具体的链接数据库sql操作。think\db\Connection.p...

  • TP5 model层 增删改查

    ————————————————版权声明:本文为CSDN博主「奋斗到深夜的小程序员」的原创文章,遵循CC 4.0 ...

  • 优质文集

    iOS UIWebView URL拦截 实现网页过滤,URL拦截

  • struts2

    1、MVC与Struts映射 1.1控制器层:FilterDispatcher是核心控制器,它负责拦截和过滤所有的...

  • Filter、Interceptor、Aspect学习

    简介:过滤器、拦截器、切面 如何选择? Filter过滤器 过滤器可以拦截到方法的请求和响应ServletRequ...

  • Spring Boot 拦截器、过滤器、切片 执行顺序

    spring 过滤器 拦截器 切片的执行顺序? 步骤如下 1)过滤器启动2)拦截器启动(拦截器 preHandle...

  • Spring MVC拦截器

    SpringMvc的拦截器和过滤器的区别 1.拦截器是使用JDK动态代理实现的,拦截的是对应调用方法的拦截2.过滤...

  • spring security简单使用以及过滤器和部分源码实现

    主要实现 主要通过过滤器实现,通过一层层拦截来实现登录认证等操作。主要讲一下UsernamePasswordAut...

  • interceptor(拦截器)

    interceptor(拦截器) 拦截器,顾名思义,他的作用就是拦截,这个要和过滤器区分开,过滤器依赖server...

网友评论

      本文标题:TP5 Model层拦截过滤

      本文链接:https://www.haomeiwen.com/subject/ixwbmftx.html