getCode(); $detail = $e->getMessage(); if (str_contains($detail, 'max_allowed_packet') || str_contains($detail, 'Packet too large')) { $code = 'payload_too_large'; $msg = '文件过大,超出服务器数据库限制'; $status = 413; } elseif (str_contains($detail, 'Unknown column') || str_contains($detail, "doesn't exist")) { $msg = '数据库结构不完整,请导入 database/schema.sql 或执行 php scripts/migrate-schema.php'; } elseif ($sqlState === '22001' || str_contains($detail, 'Data too long')) { $code = 'payload_too_large'; $msg = '文件内容过长,无法保存'; $status = 413; } } if ($debug) { $msg .= ' (' . $e->getMessage() . ')'; } Json::fail($code, $msg, $status); } }