PHP使Laravel为JSON REST API返回自定义错误的问题
作者:代码日志 发布时间:2023-11-24 06:57:32
标签:php,json,返回错误
我正在开发某种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返回自定义错误的解决方法,希望对大家有所帮助.
来源:https://codeday.me/bug/20181016/297099.html
0
投稿
猜你喜欢
- 这篇文章主要介绍了Python加密模块的hashlib,hmac模块使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- 1,SELECT 语句 在SQL的世界里,最最基础的操作就是SELECT 语句了。在数据库工具下直接采用SQL
- 查询微信里的一些精选的,点击量比较大的文章。 别忘记申请apikey(登录百度账号即可获取),要完成的功能是:1、用户回复&quo
- PHP xpath() 函数定义和用法xpath()函数运行对 XML 文档的 XPath 查询。如果成功,该函数返回 SimpleXMLE
- 一、功能简述正是微博如火如荼的时节,其中各个微博的分享功能是网站推广产品的好东东啊,此时如何方便快捷的使用微博的分享功能就显得比较重要了。我
- 如何通过表单创建一个Word?举个例子吧,我们先创建一个表单文件docform.htm,再用ASP程序(doccreate.asp)来处理表
- 最近想做实时目标检测,需要用到python开启摄像头,我手上只有两个uvc免驱的摄像头,性能一般。利用python开启摄像头费了一番功夫,主
- 对于某一类网站, 管理界面 是基础设施中非常重要的一部分。 这是以网页和有限的可信任管理者为基础的界面,它可以让你添加,编辑和删除网站内容。
- 2005转到2000的步骤 1. 生成for 2000版本的数据库脚本 2005 的manger s
- 本文实例讲述了JS中getElementsByClassName与classList兼容性问题解决方案。分享给大家供大家参考,具体如下:do
- 我就废话不多说了,直接上代码吧!#Copyright (c)2017, 东北大学软件学院学生# All rightsreserved#文件名
- 一、word转pdf先安装win32库:pip install pywin32from win32com.client import gen
- lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节length(string)计算string所占的
- 路由控制匹配本文主要分析下express的核心功能路由的使用。express路由的匹配规则:支持模糊匹配,同一个路由可能命中多个定义的路由r
- 最近一个小项目需要一个星级评分的效果,所以去淘宝偷了一个,但是还得加载YUI很不爽,还是自己动手写一个吧~HTML: <!-
- 本文主要研究的是Django中migrate和makemigrations的差别,具体如下。在你改动了 model.py的内容之后执行下面的
- 本文实例讲述了php查询whois信息的方法。分享给大家供大家参考。具体如下:这里使用php通过查询whois信息的网站列表进行查询func
- [前言:]ASP.NET是微软提供的最新的开发基于Web的应用程序的技术。它提供了大量的比传统ASP脚本技术的好处,包括:1)通过把UI表现
- MySQL出错代码列表:1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库
- 表单的验证一直是网页设计者头痛的问题,表单验证类 Validator就是为解决这个问题而写的,旨在使设计者从纷繁复杂的表单验证中解放出来,把