繁体   English   中英

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
}    

该中间件在全球范围内注册。 即附加到\\App\\Http\\Kernel$middleware属性。 我想念什么?

根据我们在评论中的讨论,我发现此处存在一个小故障,该故障在文档中未定义。 我在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;

访问请求参数。

这很棘手,但看起来像以下内容:

$请求 - >的getContent()

或者如果获取请求的json负载:

$请求 - > JSON()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM