58 lines
1.5 KiB
PHP
58 lines
1.5 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::duplicates([$dup]);
|
|
}
|
|
|
|
/**
|
|
* 多条重复数据错误(一次录入多个字段均重复时,单弹窗全部列出)
|
|
* @param array $dups 重复记录数组
|
|
*/
|
|
public static function duplicates($dups)
|
|
{
|
|
$dups = array_values((array)$dups);
|
|
self::json([
|
|
'code' => 1001,
|
|
'msg' => count($dups) . ' 个字段出现重复',
|
|
'data' => $dups,
|
|
]);
|
|
}
|
|
|
|
private static function json($payload)
|
|
{
|
|
header('Content-Type: application/json; charset=utf-8');
|
|
echo json_encode($payload, JSON_UNESCAPED_UNICODE);
|
|
exit;
|
|
}
|
|
}
|