在中间件之间传递数据

Passing Data between middlewares

我创建了几个中间件,一个用于特定功能,我希望后续中间件使用从前一个中间件创建的数据,而不是从头开始生成。有没有办法做到这一点?我不确定我是否应该弄乱 $request$next.

您可以使用 Session::put('key',$value) 方法将数据存储在会话中,然后使用 Session::get('key') 从下一个中间件获取它,或者您可以将该数据传递到 $request 对象中,例如$request->addCustomField = 'custom field value' 然后你可以使用 $request->addCustomField 从下一个中间件中获取它。 希望对你有帮助

使用merge函数添加到输入中:

return $next($request->merge(['my_data' => $data]));

然后可以访问 $request->input('my_data'),例如。

offsetUnset如果需要可以用来移除下一个中间件中的数据