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值 }