Files
star-cloud/app/Traits/ApiResponse.php
sky121113 c30c3a399d
All checks were successful
star-cloud-deploy-demo / deploy-demo (push) Successful in 36s
feat: 實作機台日誌核心功能與 IoT 高併發處理架構
2026-03-09 09:43:51 +08:00

50 lines
1.1 KiB
PHP

<?php
namespace App\Traits;
use Illuminate\Http\JsonResponse;
trait ApiResponse
{
/**
* 回傳成功的回應
*
* @param mixed $data
* @param string $message
* @param int $code
* @return JsonResponse
*/
public function successResponse($data = [], string $message = 'OK', int $code = 200): JsonResponse
{
return response()->json([
'success' => true,
'code' => $code,
'message' => $message,
'data' => empty($data) ? new \stdClass() : $data, // 確保前端收到的是 Object 而非 Empty Array
], $code);
}
/**
* 回傳錯誤的回應
*
* @param string $message
* @param int $code
* @param mixed $errors
* @return JsonResponse
*/
public function errorResponse(string $message, int $code = 400, $errors = null): JsonResponse
{
$response = [
'success' => false,
'code' => $code,
'message' => $message,
];
if (!is_null($errors)) {
$response['errors'] = $errors;
}
return response()->json($response, $code);
}
}