我正在開發某種RESTful API.發生一些錯誤時,我會拋出一個App :: abort($code,$message)錯誤.
問題是:我希望他用鍵“代碼”和“消息”拋出一個json形成的數組,每個數組都包含上述數據.
Array ( [code] => 401 [message] => "Invalid User" )
有沒有人知道是否可能,如果是,我該怎么做?
去你的app / start / global.php.
這將將401和404的所有錯誤轉換為自定義json錯誤,而不是Whoops stacktrace.加這個:
App::error(function(Exception $exception, $code) { Log::error($exception); $message = $exception->getMessage(); // switch statements provided in case you need to add // additional logic for specific error code. switch ($code) { case 401: return Response::json(array( 'code' => 401, 'message' => $message ), 401); case 404: $message = (!$message ? $message = 'the requested resource was not found' : $message); return Response::json(array( 'code' => 404, 'message' => $message ), 404); } });
這是處理此錯誤的眾多選項之一.
制作API最好創建自己的幫助器,如Responser :: error(400,'damn'),擴展了Response類.
有點像:
public static function error($code = 400, $message = null) { // check if $message is object and transforms it into an array if (is_object($message)) { $message = $message->toArray(); } switch ($code) { default: $code_message = 'error_occured'; break; } $data = array( 'code' => $code, 'message' => $code_message, 'data' => $message ); // return an error return Response::json($data, $code); }
總結
以上所述是小編給大家介紹的PHP使Laravel為JSON REST API返回自定義錯誤的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!