true, 'autoWriteTimestamp' => 'int', 'createTime' => 'create_at', 'updateTime' => 'update_at', 'deleteTime' => 'delete_at', 'defaultSoftDelete' => 0, 'readonly' => ['view_count'] ]; } /** * 运行时自愈:确保 sms 主表存在(install.sql 为事实源),并幂等补 delete_at 软删除列。 */ public static function ensureSchema(): void { $prefix = BaseModel::currentPrefix(); BaseModel::ensureTableFromInstall($prefix, 'common_sms'); self::ensureColumn($prefix . 'common_sms', 'delete_at', "int NOT NULL DEFAULT 0 COMMENT '删除时间(软删除)'"); } /** * 初始化:软删除依赖 delete_at 列、且需保证主表存在。 * install.sql 的短信日志表(sms)可能缺失,先自愈建表,再幂等补 delete_at 列。 */ protected function initialize() { parent::initialize(); self::ensureSchema(); } }