Laravel - 在路由重定向后,控制器中的请求为空

When i redirect a route, Can't access to request data.

This is the ajax request informations:

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

routes.php

use Illuminate\Http\Request;

Route::any('/items/search', 'ItemsController@search');

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

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

And this is controller:

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) { }
    }
}

How can i access post data in controller, after redirect?

The method withInput adds the input to the Session. You can access it in the controller using $request->session->all().

That being said, a more RESTful way to do it is to have one route /items and in your controller you decide whether to filter results based on input parameters or not.

Try this

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