【Thinkphp】tp6 多应用模式,按照应用去处理异常

1 文件路径: app/Request.php

<?php
namespace app;

// 应用请求对象类
class Request extends \think\Request
{
    protected $filter = ['htmlspecialchars'];

    
    /***获取当前的应用名称
     * 
     * 使用方法:  $request->app_name();或 Request::app_name();
     * 
     */
    public function app_name()
    {
        return App('http')->getName();
    }


}

此处要先处理 获取 应用名称,然后根据应用名称来处理

文件路径: app/ExceptionHandle.php

 /**
     * Render an exception into an HTTP response.
     *
     * @access public
     * @param \think\Request   $request
     * @param Throwable $e
     * @return Response
     */
    public function render($request, Throwable $e): Response
    {
        // 获取当前访问应用
        $app_name = $request->app_name();
        switch ($app_name) {
            case 'manage':
                return parent::render($request, $e);
                break;
            case 'home':
                $debug_status = env('APP_DEBUG',false);
                if($debug_status){
                    //调试模式下显示错误信息
                    return parent::render($request, $e);
                }else{
                    $return_data = [
                        'status'=>1,
                        'errorcode'=>$e->getCode(),
                        'message'=>$e->getMessage(),
                        'result'=>[]
                    ];
                    return json($return_data);
                }
                break;
            default:
                return parent::render($request, $e);
                break;
        }

       
    }

猜你喜欢

转载自www.cnblogs.com/richerdyoung/p/13182746.html