2015-08-30 32 views
0

當我重定向路由時,無法訪問請求數據。Laravel - 在路由重定向後控制器中的請求爲空

這是Ajax請求的信息:

Content-Type: application/x-www-form-urlencoded 
param1=my+param&request=search 

routes.php文件

use Illuminate\Http\Request; 

Route::any('/items/search', '[email protected]'); 

Route::any('/items', [ 
    function(Request $request){ 

     if ($request->input('request') == 'search') { 
      // echo $request->input('param1'); // returns param1 value correctly 
      return redirect()->action('[email protected]')->withInput(); 
     } 
    } 
]); 

這是控制器

namespace App\Http\Controllers; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use DB; 

class ItemsController extends Controller 
{ 
    public function search(Request $request) 
    { 
     var_dump($request->all()); // returns: array(0) { } 
    } 
} 

如何訪問數據後掌控之中在重定向之後?

+0

剛搬進的邏輯控制器和I不再需要重定向。感謝Mike。 –

回答

1

方法withInput將輸入添加到會話中。您可以使用$request->session->all()在控制器中訪問它。

也就是說,更具有REST風格的方法是使用一條路徑/items,並在控制器中決定是否根據輸入參數過濾結果。

+0

'$ request-> session-> all()'returns'調用一個非對象的成員函數all()' –

+0

好的,我將把邏輯完全移到控制器上。謝謝! –

+0

你在控制器中做這個嗎? [見使用說明](http://laravel.com/docs/master/session#basic-usage) –

0

試試這個

return redirect()->route('/items/search')->withInput(); 
+0

之前嘗試過。拋出一個錯誤:'InvalidArgumentException inrlGenerator.php line 278:Route [/ items/search] not defined.'我知道,這很奇怪:/ –