常见问题
如何通过微信接收工单提醒和社区通知消息?
请关注FastAdmin官方公众号:FastAdmin快速后台,关注以后点击我的->会员中心->登录->使用微信登录并进行绑定你在FastAdmin官网的账号即可。请扫以下二维码进行关注:
如何解决官方演示站iframe窗口内无法登录的问题?
Chrome浏览器从80版本开始,已经默认设置了SameSite为Lax,由于官方演示页面嵌套的iframe,会导致iframe内的cookie无法生效。
关于SameSite的说明可以参考:http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html
由于ThinkPHP5中的Session.php这个类在session_start()之前未设置session.cookie_path,如下:
可以看到session_start()之前没有进行session.cookie_path的设置,因此需要我们需要通过行为来调用ini_set进行设置。
首先我们需要修改application/config.php中的path和secure,来设置全局cookie的path和secure,来添加SameSite
'cookie' => [
// cookie 名称前缀
'prefix' => 'fa',
// cookie 保存时间
'expire' => 0,
// cookie 保存路径
'path' => '/; samesite=None',
// cookie 有效域名
'domain' => '',
// cookie 启用安全传输
'secure' => true,
// httponly设置
'httponly' => false,
// 是否使用 setcookie
'setcookie' => true,
],然后打开application/tags.php,修改app_init,增加一行'app\\common\\behavior\\Common',修改后如下:
<?php
// 应用行为扩展定义文件
return [
// 应用初始化
'app_init' => [
'app\\common\\behavior\\Common',
],
// 应用开始
'app_begin' => [],
// 应用调度
'app_dispatch' => [
'app\\common\\behavior\\Common',
],
// 模块初始化
'module_init' => [
'app\\common\\behavior\\Common',
],
// 插件开始
'addon_begin' => [
'app\\common\\behavior\\Common',
],
// 操作开始执行
'action_begin' => [],
// 视图内容过滤
'view_filter' => [],
// 日志写入
'log_write' => [],
// 应用结束
'app_end' => [],
];打开application/common/behavior/Common.php,添加一个appInit的方法,如下:
public function appInit(){
ini_set('session.cookie_path', '/; SameSite=None');
ini_set('session.cookie_secure', true);
}插件控制器明明存在为何却访问不了?
请检查控制器的命名空间是否正确
请检查控制器的类名是否匹配,大小写是否匹配
如何快速将视图中的变量批量添加htmlentities函数?
我们可以通过在第三方代码编辑器,如VSCode、PHPStorm中使用正则查找批量替换功能
通过查找\{(\$([a-z0-z\.]+))\},替换为{$1|htmlentities}进行正则(.*)全局替换,务必限制.html后缀文件
特别注意
务必限制.html后缀文件,其它文件需要手动确认
批量替换操作前请务必做好备份!
替换完成后请务必进行测试,如有输出HTML编码的页面,请根据你的页面显示要求进行移除或优化
如何按规范要求生成随机字符串用户名?
最新规范要求用户名不能使用手机号,此时如需生成随机用户名,请使用以下代码即可:
$username = method_exists('\fast\Random', 'username')
? \fast\Random::username()
: 'user_' . bin2hex(random_bytes(8)) . substr(uniqid(), -8);如需判断是否为手机号,可使用以下代码:
if (!\think\Validate::regex($mobile, "^1[3-9]\d{9}$")) {
$this->error(__('手机号格式不正确'));
}如何进行插件升级测试?
如何需要进行插件升级测试,请在插件管理中先禁用插件,然后点本地安装,页面会提示是否升级插件,点确定即可进行升级操作。
如何生成占位图片?
点击:https://placeholder.fastadmin.net 按需生成指定大小的占位图片即可。
插件目录public目录下允许的文件或目录?
在插件public目录下,只允许出现以下目录:
/assets/js/backend/插件标识/
/assets/js/frontend/插件标识/
/assets/addons/插件标识/
/uploads/插件标识/
/uploads/8位日期数字/
/插件标识/不允许再出现其它目录或文件,请按上述允许的目录进行存放。public目录下不允许任何PHP文件。