48 lines
1.2 KiB
PHP
48 lines
1.2 KiB
PHP
<?php
|
|
/**
|
|
* 统一 JSON 返回类
|
|
* 用法:Response::success($data, $msg) / Response::error($msg, $code)
|
|
*/
|
|
class Response
|
|
{
|
|
/**
|
|
* 成功返回
|
|
* @param mixed $data
|
|
* @param string $msg
|
|
*/
|
|
public static function success($data = null, $msg = '操作成功')
|
|
{
|
|
self::json(['code' => 0, 'msg' => $msg, 'data' => $data]);
|
|
}
|
|
|
|
/**
|
|
* 失败返回
|
|
* @param string $msg
|
|
* @param int $code 非0错误码(401未登录/403无权限/400参数错误/1业务错误)
|
|
*/
|
|
public static function error($msg = '操作失败', $code = 1)
|
|
{
|
|
self::json(['code' => $code, 'msg' => $msg]);
|
|
}
|
|
|
|
/**
|
|
* 重复数据错误(前端弹窗 + 跳转定位)
|
|
* @param array $dup 重复记录信息:{label,value,name,owner_label,jump,...}
|
|
*/
|
|
public static function duplicate($dup)
|
|
{
|
|
self::json([
|
|
'code' => 1001,
|
|
'msg' => ($dup['label'] ?? '字段') . '「' . ($dup['value'] ?? '') . '」出现重复',
|
|
'data' => $dup,
|
|
]);
|
|
}
|
|
|
|
private static function json($payload)
|
|
{
|
|
header('Content-Type: application/json; charset=utf-8');
|
|
echo json_encode($payload, JSON_UNESCAPED_UNICODE);
|
|
exit;
|
|
}
|
|
}
|