ParamMiddleware.php 1.3 KB
<?php

namespace App\Http\Middleware\Cside;

use App\Enums\Common\Code;
use App\Models\Project\Project;
use App\Services\ProjectServer;
use Closure;
use Illuminate\Http\Request;

class ParamMiddleware
{
    protected $param = [];

    protected $project = [];

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request, Closure $next)
    {
        $this->param = $request->all();
        $domain = $request->header('domain');
        if(!isset($domain) || empty($domain)){
            return response(['code'=>Code::USER_ERROR,'msg'=>'非法请求']);
        }
        $project = Project::getProjectByDomain($domain);
        if(empty($project)){
            return response(['code'=>Code::USER_ERROR,'msg'=>'非法请求']);
        }
        // 设置数据信息
//        $project = ProjectServer::useProject($project['id']);
//        if($project){
//            return response(['code'=>Code::USER_ERROR,'msg'=>'数据库未配置']);
//        }
        $request->attributes->add(['project' => $project]);
        return $next($request);
    }
}