我有一个提交到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()