Laravel 5.1:无法在中间件中获取表单数据


Laravel 5.1: Unable to get form data in middleware

我有一个提交到indexController@postSwitch的表单。我在postSwitch操作中获得提交的数据,但当我在中间件中做同样的事情时,它会返回null。这是一个全局中间件,我只是想看看我是否可以访问提交的数据。此文档显示我应该能够获得表单数据。

像这样。。

// Form: just a simple form that posts `id` to /switch     
// Complete routes
Route::group(['middleware' => ['auth'], function() {
    Route::get('/', 'IndexController@dashboard');
    Route::post('/switch', 'IndexController@postSwitch');
    Route::get('/settings', 'IndexController@settings');
});
Route::get('auth/login',  'Auth'AuthController@getLogin');
Route::post('auth/login', 'Auth'AuthController@postLogin');
Route::get('auth/logout', 'Auth'AuthController@getLogout');
Route::get('auth/register',  'Auth'AuthController@getRegister');
Route::post('auth/register', 'Auth'AuthController@postRegister');
Route::get('password/email', 'Auth'PasswordController@getEmail');
Route::post('password/email', 'Auth'PasswordController@postEmail');
Route::get('password/reset/{token}', 'Auth'PasswordController@getReset');
Route::post('password/reset', 'Auth'PasswordController@postReset');

// Middleware
public function handle($request, Closure $next)
{
    $id = $request->input('id');   
    dd($id);  // null
    return $next($request);
}
// IndexController@switch
public function postSwitchBrand(Request $request)
{
    $id = $request->input('id');  // Has the submitted data
}    

此中间件已在全球注册。即附加到CCD_ 4中的CCD_。我错过了什么?

根据我们在评论中的讨论,我发现这里有一个小故障,文档中没有定义。我在laravel Git存储库上提出了一个问题,说明了那里的问题。

以下是该问题的链接:https://github.com/laravel/framework/issues/11278

laravel论坛链接:http://laravel.io/forum/12-11-2015-form-data-not-accessible-in-middleware-via-request

尝试使用以下内容:

    $request->id;

访问请求参数。

这很棘手,但看起来像以下方法一样有效:

$request->getContent()

或者如果获得请求的json有效载荷:

$request->json()