【webman】中间件中如何更改header的值

深蓝

我需要在中间件中获取language的值然后进行更改,如果这个值是zh,我需要在中间件中将language更改为cn,以便后面控制器能通过$request->header('language')获取到cn这个值。

我尝试使用response()->withHeaders(),这样只能在返回时生效,在后面控制器并不能获取到我更改的cn这个值。

之前使用thinkphp,在中间件中,可以直接$request->Language = 'cn'; 这样设置language的值。

我这种情况该如何处理?这个language是不需要返回的。

795 2 0
2个回答

walkor

webman不支持更改请求。
不过你可以在中间件里设置 $request->lang = 'cn';,控制器获取时也使用 $request->lang

tanhongbin

为啥非得使用头信息?你可以直接在中间件中设置 $request->aaa = 111;然后控制器方法中直接$request->aaa 就拿到111了,response()->withHeaders() 这个是设置响应头信息的

年代过于久远,无法发表回答
🔝