最近做得都是微信公众号的项目,第一次做,所以有些问题都记录一下
最初在保存用户微信昵称的时候都是直接保存的,后来朋友某些不规则昵称的时候才发现问题
用的是tp5.1,所以在表model里面设置了

1 public function setNicknameAttr($value){
2 return base64_encode($value);
3 }
4 public function getNicknameAttr($value){
5 return base64_decode($value);
6 }
这样在保存和获取的时候都能直接转换了
有几个问题,一个是如果后台要按照昵称来搜索,会出现问题
mysql有一个from_base64()函数,来把php通过base64_encode()加密的字段解密,不过没找到tp5.1中有配合mysql的from_base64()的功能,只能用原生了

1 SELECT 2 * 3 FROM 4 table 5 WHERE 6 ( 7 from_base64 (nickname) LIKE "%find%" 8 AND `subscribe` = 1 9 ) 10 ORDER BY 11 `create_time` ASC
第二个问题其实跟第一个类似,就是如果要用到加密过的字段来进行某些判断或搜索,还是要通过解密的
