- 18 张公共表更名(addon/attachment/configure/links/spider_log/spider_stat/sms/notice/ad/task/prop/medal/help/card -> common_*,member_wallets->member_wallet,score_rule/score_log -> member_*,addon_config->common_addonconf),模型全部对齐新表名,Db 直引用清零 - Attachment 模型补 表名绑定,修复富文本上传查 wxapp_attachment 1146 隐患 - install.sql + 迁移 SQL:backend_admin/backend_role delete_at 默认 0,修复软删除(NULL != 0)误过滤导致后台菜单为空 - AppService::boot() 支持插件 info.php 声明 commands 自动注册插件命令(psr-4 自动加载,坏类名自动跳过) - 各插件(haonav/mqttbroker/wxchat/articles/blog/forum 等)字段与配置同步调整 - 框架版本 1.1.0 -> 1.1.1
69 lines
2.2 KiB
PHP
69 lines
2.2 KiB
PHP
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | YwxApp [ WE CAN DO IT JUST THINK ]
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2026-2036 http://ywxapp.cn All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | Author: ywxapp<admin@ywxapp.cn>
|
||
// +----------------------------------------------------------------------
|
||
namespace ywxapp\model;
|
||
|
||
use think\model\concern\SoftDelete;
|
||
|
||
use ywxapp\model\BaseModel;
|
||
|
||
/**
|
||
* BackendRole 类
|
||
*
|
||
* @author ywxapp <admin@ywxapp.cn>
|
||
*/
|
||
class BackendRole extends BaseModel
|
||
{
|
||
use SoftDelete;
|
||
protected function getOptions(): array
|
||
{
|
||
return [
|
||
'strict' => false,
|
||
'autoWriteTimestamp' => 'int',
|
||
'createTime' => 'create_at',
|
||
'updateTime' => 'update_at',
|
||
'deleteTime' => 'delete_at',
|
||
'defaultSoftDelete' => 0,
|
||
'append' => ['target'],
|
||
'hidden' => ['password', 'delete_at'],
|
||
'readonly' => ['id'],
|
||
];
|
||
}
|
||
|
||
// 角色拥有的用户
|
||
public function admins()
|
||
{
|
||
return $this->belongsToMany(BackendAdmin::class, BackendRoleAccess::class, 'admin_id', 'role_id');
|
||
}
|
||
|
||
/**
|
||
* 角色 → 权限字符串(通过 role_permissions 表)
|
||
*/
|
||
public function powers()
|
||
{
|
||
// 返回的是 permission 字符串列表(不是 Menu 模型)
|
||
return $this->belongsToMany(BackendPower::class, BackendRolePower::class, 'power_id', 'role_id')->field('power_id');
|
||
}
|
||
|
||
// 【推荐】角色 → 菜单模型(通过中间表 role_permissions 关联 menus)
|
||
|
||
public function menus()
|
||
{
|
||
return $this->belongsToMany(BackendPower::class, BackendRolePower::class, 'power_id', 'role_id', 'permission');
|
||
}
|
||
|
||
/**
|
||
* 表结构自愈:建表 + 关键列兜底(install.sql 为事实源)。
|
||
* 查询/写入前调用,避免老库缺表导致 1146。
|
||
*/
|
||
public static function ensureSchema(): void
|
||
{
|
||
BaseModel::ensureTableFromInstall(BaseModel::currentPrefix(), 'backend_role');
|
||
}
|
||
}
|