12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- namespace app\common\model;
- use think\Model;
- abstract class ZskkBaseModel extends Model
- {
- /**
- * @var string 自动写入时间戳
- */
- protected $autoWriteTimestamp = 'datetime';
- /**
- * @var array 需要加密的字段
- */
- protected array $decrypts = [];
- /**
- * @var array 需要解密的字段
- */
- protected array $encrypts = [];
- /**
- * @var array 需要模糊的字段
- */
- protected array $blurs = [];
- /**
- * @var array 模糊方法配置
- */
- protected array $blur_funs = [];
-
- /**
- * 通过修改器 设置数据对象值
- *
- * @param string $name 属性名
- * @param mixed $value 属性值
- * @param array $data 数据
- *
- * @return void
- */
- public function setAttr(string $name, $value, array $data = []): void
- {
- $needEncrypt = in_array($name, $this->encrypts);
- if($needEncrypt) {
- $value = $this->encrypt($value, $name);
- }
- parent::setAttr($name, $value, $data);
- }
- /**
- * 获取器 获取数据对象的值
- *
- * @param string $name 名称
- *
- * @throws InvalidArgumentException
- *
- * @return mixed
- */
- public function getAttr(string $name)
- {
- $value = parent::getAttr($name);
- $needDecrypt = in_array($name, $this->decrypts);
- if($needDecrypt) {
- $value = $this->decrypt($value, $name);
- }
- $needBlur = in_array($name, $this->blurs);
- if($needBlur && $value) {
- $value = $this->blur($value, $name);
- }
- return $value;
- }
- /**
- * 解密
- */
- protected abstract function decrypt($val, $name);
- /**
- * 模糊
- */
- protected abstract function blur($val, $name);
- /**
- * 加密
- */
- protected abstract function encrypt($val, $name);
-
-
-
- }
|