belongsToMany(SysRole::class, SysRoleMenu::class, 'menu_id', 'role_id'); } // 事件定义 public static function onBeforeRestore(Model|SysMenu $model) { $model->set('deleted', 0); return true; } public static function onBeforeDelete(Model|SysMenu $model): bool { $model->set('deleted', 1); return true; } public static function onAfterInsert(Model|SysMenu $model): void { security_log_record([SysMenu::class, 'onAfterInsert'], "添加了新菜单", $model); } public static function onAfterDelete(Model|SysMenu $model): void { security_log_record([SysMenu::class, 'onAfterDelete'], "菜单{$model->title}被删除", $model); } // 搜索定义 public function searchTitleAttr($query, $value): void { $value !== '' && $query->where('title', 'like', '%' . $value . '%'); } public function searchAuthorityAttr($query, $value): void { $value !== '' && $query->where('authority', 'like', '%' . $value . '%'); } public function searchPathAttr($query, $value): void { $value !== '' && $query->where('path', 'like', '%' . $value . '%'); } }