generated from liutk/owl-admin-base
57 lines
1.6 KiB
PHP
57 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Traits;
|
|
|
|
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
|
|
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
trait JsonResponse
|
|
{
|
|
public function json($data, $code = 200, $message = '')
|
|
{
|
|
$meta = null;
|
|
if ($data instanceof AnonymousResourceCollection) {
|
|
$resource = $data->resource;
|
|
if ($resource instanceof LengthAwarePaginator) {
|
|
$meta = [
|
|
'current_page' => $resource->currentPage(),
|
|
'last_page' => $resource->lastPage(),
|
|
'per_page' => $resource->perPage(),
|
|
'total' => $resource->total(),
|
|
];
|
|
}
|
|
}
|
|
$result = ['data' => $data, 'code' => $code, 'message' => $message];
|
|
if ($meta) {
|
|
$result['meta'] = $meta;
|
|
}
|
|
return response()->json($result);
|
|
}
|
|
|
|
public function success($message = '', $data = null)
|
|
{
|
|
return $this->json($data, 200, $message);
|
|
}
|
|
|
|
public function error($message = '', $code = 400, $data = null)
|
|
{
|
|
return $this->json($data, $code, $message);
|
|
}
|
|
|
|
public function include($include = [], $key = 'include')
|
|
{
|
|
$request = request();
|
|
if ($request->filled($key)) {
|
|
$include1 = $request->input($key);
|
|
$include1 = is_array($include1) ? $include1 : explode(',', $include1);
|
|
$include = array_merge($include, $include1);
|
|
}
|
|
return $include;
|
|
}
|
|
|
|
protected function user($guard = null)
|
|
{
|
|
return Auth::guard($guard)->user();
|
|
}
|
|
} |