您好,登錄后才能下訂單哦!
這篇文章主要講解了“Laravel如何同時錯誤處理為JSON”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Laravel如何同時錯誤處理為JSON”吧!
Laravel中的AppExceptionsHandler 類負責記錄應用程序觸發的所有異常,這在我們開發過程中十分方便,總是try...catch使代碼太過繁瑣且可讀性大大降低,那么怎么使用它處理異常為json呢?
方法如下:
我們可以新建一個class,用來處理異常返回。
<?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加入,加入$dontReport,便不會使用自帶的錯誤處理,而使用自定義的處理。
<?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這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。