首页 > 其他分享 >laravel11:发生异常时返回json

laravel11:发生异常时返回json

时间:2024-07-17 10:53:50浏览次数:15  
标签:返回 function exception return name json laravel11 __ php

一,未配置前laravel11直接render页面

如图:

二,配置

1,  bootstrap/app.php

<?php

use Illuminate\Http\Request;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use Illuminate\Validation\ValidationException;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
use Symfony\Component\HttpFoundation\Response;

use App\extend\result\Result;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        api: __DIR__.'/../routes/api.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        //
    })
    ->withExceptions(function (Exceptions $exceptions) {
        
        $exceptions->respond(function (Response $response, Throwable $exception) {
            $msg = $exception->getMessage().' '.$exception->getFile().' '.$exception->getLine();
            return response()->json(['code'=>500,'msg'=>$msg]);
        });


    })->create();

2,触发异常,做一个除0操作

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\extend\result\Result;

class VirtualController extends Controller
{
    //使用统一返回的数据格式
    public function res(Request $request) {

        //判断是否存在name参数,如果存在
        if ($request->has('name')) {
            $data = [
                'name'=>$request->name,
                'age'=>'24',
            ];

            return Result::Success($data);
        } else {   //参数不存在时返回错误

            $z = 0;
            $a = 10 / $z;
            var_dump($a);

            return Result::ErrorCode(10024,'缺少name参数');
        }
    }
}

三,测试效果:

 

标签:返回,function,exception,return,name,json,laravel11,__,php
From: https://www.cnblogs.com/architectforest/p/18306831

相关文章

  • Fastjson的payload收集
    What无第三方依赖收集了网络上的多种payload,方便进行fuzz测试提供了自动替换payload的功能,一次性为所有payload插入rmi地址/dnslogHelp--list:以清单的形式打印,方便作为字典进行fuzz--address:服务器地址(无需rmi://前缀),如11.22.33.44/exp、eval.com/rce--dns:dnslog的地址,不同......
  • 在存储过程输入输出参数中使用json
    SqlServer从2016开始支持json操作,JSON支持适用于SqlServer2016及以上版本和AzureSQLDatabase。sqlserver文档参考这里。有了这个json支持,默认过程只传入一个json字符串参数就可以了,方便很多。我们可以在内部做很多事情。甚至可以校验参数,鉴权或将结果集封装为标准的......
  • 实时时钟、弱函数、json
    一、实时时钟时间戳(实时的时间【单位:s】):​ 使用"time.h"文件:​ mktime()——得到一个时间戳​ localtime() ——得到一个当前时间的结构体(包含:年-月-日时:分:秒)eg:time_ttimestamp=mktime(&utc_time);//得到一个时间戳(单位为秒)structtm*beijing_time=lo......
  • Python爬虫Post请求返回值为-1000
    今天写了一个简单的爬虫程序,为了爬取kfc官网的餐厅数据,代码如下#ajax的post请求--肯德基官网defcreate_request(page):url='http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx'data={ 'cname':'濮阳', 'pid':'', 'pageIndex':p......
  • Java实现将json数据转换为sql insert语句
    Java实现将json数据转换为sqlinsert语句importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;importjava.util.Iterator;importjava.util.Map;publicclassJson......
  • C# 任意类型数据转JSON格式
    1publicclassObjectToJson2{3///<summary>4///List转成json5///</summary>6///<typeparamname="T"></typeparam>7///<paramname="jso......
  • 写了一个json小工具,希望大家体验(Mac平台)
    用rust写了一个json小工具“JSONPICKER”,欢迎大家试用:https://github.com/davelet/json-picker/releases/tag/V0.2动机是平常开发的时候,经常遇到大段json,里面的很多字段是不需要的。我所在的项目组在接口对接上出现了reponse达到数兆字节的情况市面上已经有不少json工具,......
  • 类与json的互相转化(c#)
    1//JavaScriptSerializer需添加dll引用,System.Web.Extensions2//Class转json字符串3JavaScriptSerializerserializer=newJavaScriptSerializer();4varjson=serializer.Serialize(obj);56//将json字符串在转为原先的类,JsonConvert需添加第三方dll,Newtonsoft.......
  • C#拼接Json串的几种方法
    1. 利用  JsonConvert.SerializeObject方法(Nuget获取Newtonsoft.JsonPackage),需要Newtonsoft.Json 支持。stringuid="22";varabcObject=new{AccessKey=11,CustomerNo=uid,mc="33",qd="44",mr="55",......
  • C#对象转换Json时的一些高级用法
    [JsonObject(MemberSerialization.OptIn)]//默认为不输出publicclassPeopleInfo{[JsonProperty]//需要输出publicstringName{get;set;}[JsonProperty]//需要输出publicintAge{get;set;}publicDateTimeBirthday{......