Response.php
1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
namespace App\Helper;
use Illuminate\Pagination\LengthAwarePaginator;
/**
* Class Response
* @package App\Helper
*/
class Response
{
/**
* 成功
* @param array $data
* @return \Illuminate\Http\JsonResponse
*/
public static function success($data = [])
{
return response()->json([
'code' => ErrorCode::SERVER_OK,
'data' => $data instanceof LengthAwarePaginator ? self::paginator($data) : $data
]);
}
/**
* 失败
* @param int $code
* @return mixed
*/
public static function error($code = ErrorCode::SERVER_ERROR, string $msg = '')
{
return response()->json([
'code' => $code,
'msg' => $msg ?: (ErrorCode::$messages[$code] ?? ErrorCode::$messages[ErrorCode::SERVER_ERROR])
]);
}
/**
* 分页
* @param LengthAwarePaginator $data
* @return array
*/
public static function paginator(LengthAwarePaginator $data): array
{
$paginator = [
'list'=> $data->items(), 'total' => (int)$data->total(),
'page' => (int)$data->currentPage(), 'pageSize'=> (int)$data->perPage(),
'pages' => ceil((int)$data->total() / (int)$data->perPage()),
];
$paginator['hasNextPage'] = ( $paginator['page'] < $paginator['pages'] ) ? true : false;
return $paginator;
}
}