12月
29
mysql 5.7 之后,默认 only_full_group_by 生效。也就是 select 的字段和 group by 的字段一样,额外的聚合函数除外。这样一来,很影响我们数据输出的需要。比如我想知道上海市每个区有多少家店,要展示区名字,店名字,区号。数据库里边存储的字段有店名、区号、区名字等。这个时候 only_full_group_by 严格模式下,直接请求就会有错误。这里是,可以有两种方法来解决。一是关掉 only_full_group_by 模式。二是使用 ANY_VALUE 函数。不错就是使用 ANY_VALUE 函数。
解决方法
个人喜欢使用 ANY_VALUE 来搞定。
SELECT COUNT(*) AS count, 区号, ANY_VALUE(区名字), ANY_VALUE(店名字) FROM 店表 GROUP BY 区号;
12月
13
2022年 10月25日后发布的小程序,无论通过 wx.getUserProfile 还是 wx.getUserInfo 获取到的的用户的信息中(之前也仅能获取头像和昵称。性别地区啥的都会没有),只会有昵称为微信用户,头像为灰色头像的有用信息。说实话,对于开发者,这种搞法太过恶心。
但实践中发现有部分小程序,在用户刚打开小程序时就要求收集用户的微信昵称头像,或者在支付前等不合理路径上要求授权。如果用户拒绝授权,则无法使用小程序或相关功能。在已经获取用户的 openId 与 unionId 信息情况下,用户的微信昵称与头像并不是用户使用小程序的必要条件。为减少此类不合理的强迫授权情况,作出如下调整。
你把你审核的锅摔给开发者,你可以审核的时候不让这种小程序上架不就可以了。记得2019年的时候,就有这样的说明。必须登录注册才能使用的用户不给上架的说明。现在搞什么飞机。
官方相关说明和解决方法
https://developers.weixin.qq.com/community/develop/doc/00022c683e8a80b29bed2142b56c01
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html
12月
10
11月
30
数组
sort() 方法对数组的项目进行排序。
排序顺序可以是按字母或数字,也可以是升序(向上)或降序(向下)。
默认情况下,sort() 方法将按字母和升序将值作为字符串进行排序。
如:
let fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
# 输出 ['Apple', 'Banana', 'Mango', 'Orange']
fruits.reverse();
# 输出 ['Orange', 'Mango', 'Banana', 'Apple']
不过基于数字的排序,是按字符串来排序的。比如 33 排序比 123 要后。 如果非要基于数字大小来排。可以通过传入函数的方式来解决。
比如:
let arr = [1, 123, 22,5, 32];
arr.sort((a,b)=>(a-b));
# 输出 1, 5, 22, 32, 123
# 这样就可以基于数字来排序了
如果是基于数组里的 object ,也可以通过这种方式来排序。
Object 呢
对 object 按键值排序,一般在做加密验证的时候会用到。
有了数组的排序,object 也一样可以。
let param = {
name: 'vini123',
gender: 1,
time: 1669796346
}
let sorted = {};
Object.keys(param).sort().forEach(key => {
sorted[key] = param[key];
});
11月
21
uniapp 打包 app 时,默认安全区域的颜色是白色。如果页面和安全区域接触的区域不是白色,就会出现色差,这个时候体验就真心不好啊。不过,可以设置去搞掉。
我也是在做聊天功能时才碰触到颜色的问题。
https://uniapp.dcloud.net.cn/collocation/manifest-app.html#full-manifest
在文档中,找到 safearea 配置,复制过去在 manifest.json 找到 app-plus 添加进去去配置。
"safearea": {
"bottom": {
"offset": "none"
}
},
可以这样设置。
参考
https://blog.csdn.net/CSDN877425287/article/details/107484287
11月
19
时间,日期相关的处理, carbon 的确是个好东西。感觉离不开呀。
Carbon 是对 PHP DateTime 模块的二次扩展;提供时间格式化,时间计算的功能;
官方主页:http://carbon.nesbot.com/;
github: https://github.com/briannesbitt/Carbon
参考
https://www.jianshu.com/p/7e45bc4d0006
https://www.php.cn/phpkj/laravel/484191.html
https://learnku.com/articles/62292