tp6 多应用容器引入Request方法传递参数在控制器里

我本来是在主题里面的api新建了个中间件,然后中间件里的参数不能传递给控制器,后来才发现多应用里的容器不能执行,换成app里的就可以,才发现多应用里的容器think\Request的问题,缺少了个斜杠,切记不能复制粘贴啊~~~

<?php

#在app\api里面下穿件provider.php

#api就是你多主题的文件然后不要复制app里面的弄成一模一样,这样就不会执行里面的request应用请求

#多应用引入需要写成斜杆(\),

use app\api\ExceptionHandle;
use app\api\Request;

// 容器Provider定义文件
return [
'\think\Request' => Request::class,
'\think\exception\Handle' => ExceptionHandle::class,
];

 

<?php

//middleware中间件代码

declare(strict_types = 1);
namespace app\api\middleware;
use think\Response;

// 判断接口是否传递参数过来
class Auth
{

  public function handle($request,\Closure $next){

    if($request->param("name")){
      $request->cate_name = $request->param("name");
    }
    $response = $next($request);
    return $response;
  }

}

 

 

<?php

控制器里

 

public function index(){

request()->cate_name //输出name值

}

 

posted @ 2022-03-30 11:56  亚索会代码  阅读(777)  评论(0编辑  收藏  举报