簡體   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