## 公共助手函数
> ThinkPHP6.0安装时默认会在app目录下创建公共助手函数文件`common.php`,公共方法在该文件中创建后即可全局使用。
## 创建请求返回消息提示公共方法
1. 请求成功返回消息提示:
~~~
if (!function_exists('success')) {
/**
* 请求成功返回
* @param array $data
* @param string $msg
* @param int $code
* @return \think\response\Json
*/
function success($data = [], $msg = '', $code = 20000)
{
$result['code'] = $code; // 状态码
$result['msg'] = $msg; // 提示信息
$result['time'] = time(); // 请求返回时间
$result['data'] = $data; // 请求返回数据
return json($result);
}
}
~~~
> 默认与`vue-element-admin`请求成功状态码20000保持一致。
2. 请求失败返回消息提示:
~~~
if (!function_exists('error')) {
/**
* 请求失败返回
* @param string $msg
* @param int $code
* @return \think\response\Json
*/
function error($msg = '', $code = 50000)
{
$result['code'] = $code;
$result['msg'] = $msg;
$result['time'] = time();
return json($result);
}
}
~~~
> 默认请求失败时不返回数据,状态码为50000。
3. 树形结构公共方法
~~~
if (!function_exists('tree')) {
/**
* 以pid——id对应,生成树形结构
* @param array $array
* @return array|bool
*/
function tree($array)
{
$tree = []; // 生成树形结构
$newArray = []; // 中转数组,将传入的数组转换
if (is_array($array) && !empty($array)) {
foreach ($array as $item) {
$newArray[$item['id']] = $item; // 以传入数组的id为主键,生成新的数组
}
foreach ($newArray as $k => $val) {
if ($val['pid'] > 0) { // 默认pid = 0时为一级
$newArray[$val['pid']]['children'][] = &$newArray[$k]; // 将pid与主键id相等的元素放入children中
} else {
$tree[] = &$newArray[$val['id']]; // 生成树形结构
}
}
return $tree;
} else {
return false;
}
}
}
~~~
> 以id-pid对应生成树形结构
4. 随机密码盐(默认6个字符)
~~~
if (!function_exists('alnum')) {
/**
* 随机生成数字+字母组合随机字符串密码盐(包含大小写字母)
* @param int $len 生成随机字符串的长度,默认6个字符
* @return false|string
*/
function alnum($len = 6)
{
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
return substr(str_shuffle(str_repeat($pool, ceil($len / strlen($pool)))), 0, $len);
}
}
~~~
> 管理员登录密码以md5 + 随机密码盐方式进行加密