# 内置事件
# 成员登录成功事件
事件监听配置:项目根目录/app/event.php
return [
...,
'listen' => [
...,
'AppInit' => [
"yunj\core\Init"
],
// 成员登录成功事件
'AdminMemberLogin'=>[
"app\\event\\listen\\AdminMemberLogin"
],
],
];
事件监听处理类:
namespace app\event\listen;
use yunj\app\admin\model\AdminMember;
class AdminMemberLogin {
/**
* @param AdminMember $member 当前登录成员实例
*/
public function handle(AdminMember $member) {
$memberId = $member->id;
// ...其他业务操作
}
}
# 成员退出登录事件
事件监听配置:项目根目录/app/event.php
return [
...,
'listen' => [
...,
'AppInit' => [
"yunj\core\Init"
],
// 成员退出登录事件
'AdminMemberLogout'=>[
"app\\event\\listen\\AdminMemberLogout"
],
],
];
事件监听处理类:
namespace app\event\listen;
use yunj\app\admin\model\AdminMember;
class AdminMemberLogout {
/**
* @param AdminMember $member 当前登录成员实例
*/
public function handle(AdminMember $member) {
$memberId = $member->id;
// ...其他业务操作
}
}
# 系统设置保存前事件
事件监听配置:项目根目录/app/event.php
return [
...,
'listen' => [
...,
'AppInit' => [
"yunj\core\Init"
],
// 系统设置保存前事件
'AdminSettingSaveBefore'=>[
"app\\event\\listen\\AdminSettingSaveBefore"
],
],
];
事件监听处理类:
namespace app\event\listen;
class AdminSettingSaveBefore {
/**
* @param array $args
* [
* 'group'=>'xxx', // 设置分组
* 'groupConfig'=>[...]', // 分组配置
* 'values'=>[...], // 保存字段值
* ]
*/
public function handle(array $args) {
['group' => $group, 'groupConfig' => $groupConfig, 'values' => $fieldValues] = $args;
if (!in_array($group, ['test'])) {
$msg = ($groupConfig['desc'] ?? '') . ' 数据暂未开放演示修改';
throw_error_json($msg);
}
}
}
# 权限编辑保存前事件
事件监听配置:项目根目录/app/event.php
return [
...,
'listen' => [
...,
'AppInit' => [
"yunj\core\Init"
],
// 权限编辑保存前事件
'AdminAuthSaveBefore'=>[
"app\\event\\listen\\AdminAuthSaveBefore"
],
],
];
事件监听处理类:
namespace app\event\listen;
class AdminAuthSaveBefore {
/**
* @param array $args
* [
* 'isEdit'=>'xxx', // 是否编辑保存
* 'loadValues'=>[...]', // 加载的数据
* 'data'=>[...], // 修改后提交的数据
* ]
*/
public function handle(array $args) {
['isEdit' => $isEdit, 'loadValues' => $loadValues, 'data' => $data] = $args;
}
}
# 路由请求功能保存前事件
事件监听配置:项目根目录/app/event.php
return [
...,
'listen' => [
...,
'AppInit' => [
"yunj\core\Init"
],
// 路由请求功能保存前事件
'AdminRouteSaveBefore'=>[
"app\\event\\listen\\AdminRouteSaveBefore"
],
],
];
事件监听处理类:
namespace app\event\listen;
class AdminRouteSaveBefore {
/**
* @param array $args
* [
* 'isEdit'=>'xxx', // 是否编辑保存
* 'loadValues'=>[...]', // 加载的数据
* 'data'=>[...], // 修改后提交的数据
* ]
*/
public function handle(array $args) {
['isEdit' => $isEdit, 'loadValues' => $loadValues, 'data' => $data] = $args;
}
}
# 表单构建器提交操作前事件
事件监听配置:项目根目录/app/event.php
return [
...,
'listen' => [
...,
'AppInit' => [
"yunj\core\Init"
],
// 表单构建器提交操作前事件
'YunjFormSubmitBefore'=>[
"app\\event\\listen\\YunjFormSubmitBefore"
],
],
];
事件监听处理类:
namespace app\event\listen;
use yunj\core\builder\YunjForm;
class YunjFormSubmitBefore {
/**
* @param array $args
* [
* 'builder'=>xxx, // 构建器实例
* 'values'=>[...], // 提交字段值
* ]
*/
public function handle(array $args) {
/** @var YunjForm $builder */
['builder' => $builder, 'values' => $values] = $args;
$builderId = $builder->getId();
if ($builderId !== 'demo' && $builderId !== 'SettingForm') {
throw_error_json('当前操作暂未开放演示');
}
}
}
# 表格构建器异步事件触发前事件
事件监听配置:项目根目录/app/event.php
return [
...,
'listen' => [
...,
'AppInit' => [
"yunj\core\Init"
],
// 表格构建器异步事件触发前事件
'YunjTableEventBefore'=>[
"app\\event\\listen\\YunjTableEventBefore"
],
],
];
事件监听处理类:
namespace app\event\listen;
class YunjTableEventBefore {
/**
* @param array $args
* [
* 'builder'=>xxx, // 构建器实例
* 'event'=>'xxx', // 事件
* 'ids'=>[...], // 主键集合。若设置有对应的表格构建器”pk“。则主键集合键名为设置的”pk“+"s",默认为ids。
* ]
*/
public function handle(array $args) {
['builder' => $builder, 'event' => $event] = $args;
throw_error_json('当前操作暂未开放演示');
}
}