【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;
        }

       
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM