2017-02-09 18:03:48 1677次浏览 1条回答 0 悬赏 20 金钱

目前是这样的

自定义rules 把入库数据加密

  • 怎么控制在列表和view页面的时候进行解密?

  • 定义behaviors指定action 去执行解密字段的操作 这个思路?

补充于 2017-02-10 10:34

[encrypt]

  • 在controller actionUpdate() actionCreate()中指定场景
   $model->scenario = "update";
   $model->scenario = "create";
  • 在model rules() 指定自定义的rules 验证规则
['id_no','encrypt','on'=>['update','create'],
  • diy rules
public function encrypt(){...}
补充于 2017-02-10 11:11

场景定义可以这样么

public function actions()
{
    $actions = parent::actions();
    $actions['update']['scenario'] = 'update';
    $actions['create']['scenario'] = 'create';
    return $actions;
}

最佳答案

  • curder 发布于 2017-02-10 12:24 举报

    根据楼主的问题,我想有如下两种解决办法:

    1. 在模型的 afterFind() 中将数据解密,具体的代码根据业务需求实现。

    2. 在AR模型新增一个方法用于解密,例如:getDecrypt() ,方法内完成解密操作并返回结果,在列表和view页面调用模型的 $model->decrypt 属性即可。

    具体请楼主自行测试。

    1 条回复
    回复于 2017-02-10 14:14 回复
    afterFind()
    

    好用

    觉得很赞
    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
jingbai
主管

jingbai

注册时间:2014-06-20
最后登录:2017-05-10
在线时长:8小时36分
  • 粉丝2
  • 金钱450
  • 威望0
  • 积分530

热门问题