Laravel 在中间件之间传递数据

Laravel 在中间件之间传递数据,laravel,laravel-5,laravel-middleware,Laravel,Laravel 5,Laravel Middleware,我已经创建了两个中间件,每个特定函数一个,我希望后续的中间件使用从以前的中间件创建的数据,而不是从头开始生成数据。有办法吗?我不确定我是否应该处理$request或$next您可以使用Session::put('key',$value)方法在会话中存储数据,然后使用Session::get('key')从下一个中间件获取数据,或者您可以在$request对象中传递该数据,例如$request->addCustomField='customfieldvalue',然后您可以使用$request->

我已经创建了两个中间件,每个特定函数一个,我希望后续的中间件使用从以前的中间件创建的数据,而不是从头开始生成数据。有办法吗?我不确定我是否应该处理
$request
$next

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

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

return $next($request->merge(['my_data' => $data]));
例如,它可以通过
$request->input('my_data')
访问

如果需要,可用于删除下一个中间件中的数据。

使用该功能添加到输入:

return $next($request->merge(['my_data' => $data]));
例如,它可以通过
$request->input('my_data')
访问


如果需要,可用于在下一个中间件中删除数据。

您可以使用Singleton模式,但我认为这不是最好的方法在中间件中创建什么样的数据?您可以使用Singleton模式,但我认为这不是在中间件中创建哪种数据的最佳方法?合并可能会替换“my_data”字段,但前提是请求中存在该参数。是的,我希望开发人员事先知道存在哪些字段,并选择一个命名良好的索引,以避免覆盖数据。如果请求中存在参数,merge可能会替换“my_data”字段。是,我希望开发人员事先知道存在哪些字段,并选择一个命名良好的索引,以免覆盖数据。谢谢!这实际上是我采取的方法。谢谢!这实际上就是我采取的方法。