Laravel 에서 JSON 으로 오 류 를 통일 하 는 방법 소개

2640 단어 laravel잘못json
Laravel 의 AppExceptions Handler 류 는 응용 프로그램 이 촉발 하 는 모든 이상 을 기록 하 는 것 을 책임 집 니 다.이것 은 우리 가 개발 하 는 과정 에서 매우 편리 합 니 다.항상 try..catch 는 코드 가 너무 번 거 롭 고 가 독성 이 크게 떨 어 집 니 다.그러면 이 를 어떻게 사용 하여 json 으로 처리 합 니까?
방법 은 다음 과 같다.
이상 반환 을 처리 하기 위해 클 라 스 를 새로 만 들 수 있 습 니 다.

<?php
/**
 * Author: sai
 * Date: 2020/1/15
 * Time: 14:31
 */

namespace App\Exceptions;


class ApiException extends \Exception
{
 const ERROR_CODE = 1001;
 const ERROR_MSG = 'ApiException';

 private $data = [];

 /**
  * BusinessException constructor.
  *
  * @param string $message
  * @param string $code
  * @param array $data
  */
 public function __construct(string $message, string $code, $data = [])
 {
  $this->code = $code ? : self::ERROR_CODE;
  $this->message = $message ? : self::ERROR_MSG;
  $this->data = $data;
 }

 /**
  * @return array
  */
 public function getData()
 {
  return $this->data;
 }

 /**
  *     
  */
 public function render($request)
 {
  return response()->json([
   'data' => $this->getData(),
   'code' => $this->getCode(),
   'messgae' => $this->getMessage(),
  ], 200);
 }
}
그리고 저 희 는 Handler 에 가입 하여$dont Report 를 추가 하면 자체 오류 처 리 를 사용 하지 않 고 사용자 정의 처 리 를 사용 합 니 다.

<?php

namespace App\Exceptions;

use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;

class Handler extends ExceptionHandler
{
 /**
  *               
  */
 protected $dontReport = [
  ApiException::class,
 ];

 ...
}
우리 테스트 해 보 자.

<?php

namespace App\Http\Controllers;

use App\Exceptions\ApiException;
use Illuminate\Http\Request;

class HomeController extends Controller
{
 public function index(Request $request)
 {
  throw new ApiException('error', 10001, ['oh' => 'no']);
  return 1;
 }
}
출력 보기:

테스트 ok,우 리 는 즐겁게 사용 할 수 있 습 니 다.물론 다른 형식의 오류 출력 은 스스로 확장 할 수 있다.
총결산
Laravel 의 JSON 통합 오류 처리 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Laravel 의 통일 오류 처 리 는 JSON 내용 입 니 다.저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기