🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 行为事件 FastAdmin中的行为支持ThinkPHP5的所有行为,同时FastAdmin自定义部分专属的行为事件,以下是所有支持的行为事件 ## 行为列表 | 标签位 | 描述 | 类型说明 | | --- | --- | --- | | app\_init | 应用初始化标签位 | 系统 | | app\_begin | 应用开始标签位 | 系统 | | module\_init | 模块初始化标签位 | 系统 | | action\_begin | 控制器开始标签位 | 系统 | | view\_filter | 视图输出过滤标签位 | 系统 | | app\_end | 应用结束标签位 | 系统 | | log\_write | 日志write方法标签位 | 系统 | | log\_write\_done | 日志写入完成标签位 | 系统 | | response\_end | 输出结束标签位 | 系统 | | response\_send | 响应发送标签位 | 系统 | | upload\_after | 上传成功标签位 | FastAdmin | | login\_init | 登录标签位 | FastAdmin | | wipecache\_after | 清除缓存后标签位 | FastAdmin | | admin\_nologin | 管理员未登录标签位 | FastAdmin | | admin\_nopermission | 管理员无权限标签位 | FastAdmin | | upload\_config\_init | 上传配置标签位 | FastAdmin | | config\_init | 系统配置标签位 | FastAdmin | 使用行为时在`Mydemo.php`中添加上对应的方法,FastAdmin在安装时、禁用、启用即可自动注册行为。但一定请注意在`Mydemo.php`中编写行为方法使用的是驼峰式规则,例如`upload_after`,方法名则为`uploadAfter`,如果方法名使用`upload_after`则不会注册成功。 ## 监听行为 在FastAdmin中可以使用`\think\Hook::listen`来监听行为 ~~~scss \think\Hook::listen("upload_after", $attachment); ~~~ 以上代码位于`application/admin/controller/Ajax.php`第`135`行。因此我们在`Mydemo.php`中的`uploadAfter`会被触发。 ## 触发行为 如果在特殊情况下我们需要手动触发行为,我们可以使用`\think\Hook::exec("upload_after", $attachment);`来手动触发行为,并获得返回值。 ## 常见问题 如果我们在`Mydemo.php`中定义了行为并生效了,后续又删除了`Mydemo.php`中的行为代码,此归会导致整个框架都无法找到插件的行为方法,此时我们需要手动删除`application/extra/addons.php`中`hooks`节点相应的行为配置,移除相关的配置即可。