[英]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.