在FastAdmin
中除了自带ThinkPHP5
中常用的函数以外,还额外扩展了许多非常实用的函数,可以将这些函数快速的应用于我们的开发中。
以下是ThinkPHP5
和FastAdmin
中定义的函数所在位置,如果你需要添加自定义函数,请参考ThinkPHP5
的文档:https://www.kancloud.cn/manual/thinkphp5/182270 。
请勿修改FastAdmin
和ThinkPHP5
定义的函数文件。
//ThinkPHP5中定义的函数所在文件
站点目录/thinkphp/helper.php
//FastAdmin中定义的函数所在文件
站点目录/application/common.php
生成完整URL页面地址
参数
参数名 | 描述 | 默认值 | 必选 |
---|---|---|---|
$url | 页面相对URL | 无 | 是 |
$vars | URL参数 | [] | 否 |
$suffix | 是否显示URL后缀,如html | true | 否 |
$domain | 是否显示域名 或者直接传入域名 | false | 否 |
返回值
返回经过补全后的URL地址或完整URL地址
示例
//前台模块(index/api/插件模块)
$url = url('/index/user/login');
//返回:/index/user/login
$url = url('/index/user/login', ['a'=>1], false, true);
//返回:http://www.example.com/index/user/login?a=1
$url = url('/index/user/login', [], false, true);
//返回:http://www.example.com/index/user/login
$url = url('/index/user/login', [], false, 'www.baidu.com');
//返回:http://www.baidu.com/index/user/login
//后台模块(admin)
$url = url('/index/user/login');
//返回:/x02lsfdsSf02Sap.php/index/user/login
$url = url('/index/user/login',[],false,true);
//返回:http://www.example.com/x02lsfdsSf02Sap.php/index/user/login
//模板视图中使用
{:url('/index/user/login')}
温馨提示
URL使用受模块影响,例如在前台模块生成的是前台的地址,后台模块生成的是后台地址
获取上传资源的CDN的地址
参数
参数名 | 描述 | 默认值 | 必选 |
---|---|---|---|
$url | 资源相对地址或完整路径 | 无 | 是 |
$domain | 是否显示域名 或者直接传入域名 | false | 否 |
返回值
返回经过补全后的上传资源的URL地址
示例
$result = cdnurl('/uploads/2022/20220210/my.jpg', true);
//返回:http://www.example.com/uploads/2022/20220210/my.jpg
$result = cdnurl('/uploads/2022/20220210/my.jpg', 'http://www.test.com');
//返回:http://www.test.com/uploads/2022/20220210/my.jpg
//模板视图中使用
{$item.image|cdnurl}
//返回:/uploads/20240211/32323223fds.jpg
{$item.image|cdnurl=###,true}
//返回:https://www.example/uploads/20240211/32323223fds.jpg
温馨提示
cdnurl
函数无法判断资源是云存储资源
还是本地资源
,如果安装启用了云存储插件,cdnurl
补全的是云存储的cdn地址
,如果需要补全本地资源的全路径,需要手动传递第二个$domain
参数为本地域名
或request()->domain()
即可
附加关联字段数据
参数
参数名 | 描述 | 默认值 | 必选 |
---|---|---|---|
$items | 需要附件关联字段数据的源二维数组 | 无 | 是 |
$fields | 关联字段的配置信息 | 无 | 是 |
返回值
返回经过附加关联字段数据的数组
示例1
$items = [
['user_id'=>1, 'content'=>'abc'],
['user_id'=>2, 'content'=>'def'],
];
$fields = 'user_id';
addtion($items, $fields);
//返回$items的结果如下,此时会自动附加user_name,user_name来源为fa_user表中的name数据
$items = [
['user_id'=>1, 'content'=>'abc', 'user_name'=>'张三'],
['user_id'=>2, 'content'=>'def', 'user_name'=>'李四'],
];
示例2
$items = [
['user_id'=>1, 'content'=>'abc', 'category_id'=>1],
['user_id'=>2, 'content'=>'def', 'category_id'=>2],
];
$fields = [
'user_id',
'category_id'
];
addtion($items, $fields);
//返回$items的结果如下,此时会自动附加user_name和category_name,user_name来源为fa_user表中的name数据,category_name来源为fa_category表中的name数据
$items = [
['user_id'=>1, 'content'=>'abc', 'user_name'=>'张三', 'category_name'=>'分类一'],
['user_id'=>2, 'content'=>'def', 'user_name'=>'李四', 'category_name'=>'分类二'],
];
示例3
$items = [
['user_id'=>1, 'content'=>'abc', 'category_id'=>1],
['user_id'=>2, 'content'=>'def', 'category_id'=>2],
];
$fields = [
[
'field'=>'user_id', //关联数据字段
'display'=>'displayname', //附加的字段名称
'primary'=>'', //关联表主键
'column'=>'nickname', //关联表中读取需要显示的字段
'model'=>'', //关联模型
'table'=>'' //关联表,关联表和关联模型二选一
],
[
'field'=>'category_id', //关联数据字段
'display'=>'catename', //附加的字段名称
'primary'=>'', //关联表主键
'column'=>'name', //关联表中读取需要显示的字段
'model'=>'\app\common\model\Category', //关联模型
'table'=>''//关联表,关联表和关联模型二选一
]
];
addtion($items, $fields);
//返回$items的结果如下,此时会自动附加displayname,displayname来源为fa_user表中的nickname数据,catename来源为fa_category表中的name数据
$items = [
['user_id'=>1, 'content'=>'abc', 'displayname'=>'张三', 'catename'=>'分类一'],
['user_id'=>2, 'content'=>'def', 'displayname'=>'李四', 'catename'=>'分类二'],
];
获取首字母图像
参数
参数名 | 描述 | 默认值 | 必选 |
---|---|---|---|
$text | 文本字符串 | 无 | 是 |
返回值
返回base64的图片数据
示例
$result = letter_avatar('example');
//返回:data:image/svg+xml;base64......
$result = letter_avatar('中文');
//返回:data:image/svg+xml;base64......
用于时跨域请求时的相关响应
参数
无
返回值
无,如果检测到不允许跨域,将会输出403响应
示例
check_cors_request();
//跨域检测读取的是application/config.php中的cors_request_domain的值,,如果检测到不允许跨域,将会输出403响应
温馨提示
此跨域仅用于处理PHP端跨域检测和判断,无法处理到请求图片、JS、字体文件的跨域问题,静态资源跨域处理,需要自行修改Nginx或Apache配置
清理xss
参数
参数名 | 描述 | 默认值 | 必选 |
---|---|---|---|
$content | 待清理的文本内容 | 无 | 是 |
$is_image | 是否图片 | false | 否 |
返回值
返回清理XSS后的文本内容
示例
$result = xss_clean('我是<script>alert(3);</script>示例');
//返回:我是[removed]alert(3);[removed]示例
检测IP是否允许访问,如果检测到IP在常规管理
->系统配置
中配置的禁止IP
中,将会输出403
响应
参数
参数名 | 描述 | 默认值 | 必选 |
---|---|---|---|
$ip | IP地址,不传时将使用当前请求用户的IP | null | 否 |
返回值
无,如果检测到IP不允许,将会输出403响应
示例
check_ip_allowed();
//如果检测到IP不允许,将会输出403响应
传递文件的后缀生成相应的图片
参数
参数名 | 描述 | 默认值 | 必选 |
---|---|---|---|
$suffix | 文件后缀,不含. ,且最长为4位 | 无 | 是 |
$background | 文字背景颜色,默认自动计算 | null | 是 |
返回值
返回图片的SVG信息
示例
$result = build_suffix_image("jpg");
//返回 <svg version="1.1" xmlns="http://www.w3.org/2000/svg"...>...</svg>