网络编程
位置:首页>> 网络编程>> php编程>> PHP使Laravel为JSON REST API返回自定义错误的问题

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
投稿

猜你喜欢

  • 去年曾总结了《IE对CSS样式表的限制和解决方案》中限制的第4条写道“一个CSS文件的不能超过288kb?”,这是一个疑问句,当时没有重现出
  • 用QQ聊过天的朋友都对它的自动隐藏窗口功能爱不释手,它可以使窗口显得清爽整洁而且富有动感,笔者的几个朋友都想在自己的网页中加入类似的东东,经
  • javascript实现翻页效果:<html> <head> <title>上下翻页看 - aspxho
  • 正好最近的域名备案通过了,兴起就突然想做一个网页,虽然之前去备案域名也是有这个目的。问过几个人,说用linux上用PHP搭建网站很简单,就试
  •  如果您是HTML的初学者,请您先自学HTML。因为DHTML是现有的HTML技术的一个综合,所以HTML语言对学习动态HTML是
  • 配置指令如下:[opcache]zend_extension=opcache.soopcache.enable_cli=1;共享内存大小,
  • 标志是一种简单的工具,就象铁锤,简单实用。如果一种工具功能太多导致其效用减弱,那就让它保持简单。你并不需要一把有太多装饰的精美铁锤。对于象征
  • 一个很普通的网页中显示LOGO图像,按照以往的页面制作经验,基本是在页面中插入图像即可(<img src="logo.gif
  • 内容摘要:本文介绍了使用js来实现下拉伸缩导航菜单的功能,并带有渐显的效果,值得收藏。正好这几天公司不忙,学校又没有事情,所以想抽空架一个个
  • 代码如下:<form action="insert.asp" method="pos
  • 不知道您是否留意了,浏览本站时,浏览器右下角有一个标着top的黑色直角三角形,可以点击它返回到正在浏览的网页页眉。当滚动网页时,它的位置一直
  • 前言在上一篇文中,我们介绍了关于Python正则表达式的基础,那么在这一篇文章里,我们将总结一下正则表达式关于捕获的用法。下面话不多说,来看
  • 很多网站在注册时除了需要用户填写用户名与密码之外,还会要求用户输入邮箱,而且是属于那种不填写就不能完成注册的强制型的。碰到这种情况的时候,一
  • ★二维数组的使用方式:先声明或者定义,再赋值1)语法:var 数组名[大小][大小]类型2)比如:var arr[2][3]int[][]两
  • 曾经有许多创造性的logo设计案例,logo设计资源和logo设计指导张贴在互联网的各个角落。这些帮助会为你的logo设计创造一个功能强大的
  • 设计师不等于美工设计无所不在,但大多数企业不知道如何使用它。现代设计进入中国大概是二十多年的时间,而在国外,尤其在美国在欧洲,大概有一百年的
  • 以下是涉及到插入表格的查询的5种改进方法:1)使用LOAD DATA INFILE从文本下载数据这将比使用插入语句快20倍。2)使用带有多个
  • 让你的读者能够方便地收藏你的文章到社会化书签(网摘)网站,如 新浪,google,yahoo,Del.icio.us, 365key等添加到
  • 网页可以说是网站构成的基本元素。当我们轻点鼠标,在网海中遨游,一幅幅精彩的网页会呈现在我们面前,那么,网页的精彩与否的因素是什么呢?色彩的搭
  • 定义和用法fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。语法fopen(filename,mode,inc
手机版 网络编程 asp之家 www.aspxhome.com