Access query string values from Laravel Access query string values from Laravel laravel laravel

Access query string values from Laravel


For future visitors, I use the approach below for > 5.0. It utilizes Laravel's Request class and can help keep the business logic out of your routes and controller.

Example URL

admin.website.com/get-grid-value?object=Foo&value=Bar

Routes.php

Route::get('get-grid-value', 'YourController@getGridValue');

YourController.php

/** * $request is an array of data */public function getGridValue(Request $request){    // returns "Foo"    $object = $request->query('object');    // returns "Bar"    $value = $request->query('value');    // returns array of entire input query...can now use $query['value'], etc. to access data    $query = $request->all();    // Or to keep business logic out of controller, I use like:    $n = new MyClass($request->all());    $n->doSomething();    $n->etc();}

For more on retrieving inputs from the request object, read the docs.


Yes, it is possible. Try this:

Route::get('test', function(){    return "<h1>" . Input::get("color") . "</h1>";});

and call it by going to http://example.com/test?color=red.

You can, of course, extend it with additional arguments to your heart's content. Try this:

Route::get('test', function(){    return "<pre>" . print_r(Input::all(), true) . "</pre>";});

and add some more arguments:

http://example.com/?color=red&time=now&greeting=bonjour`

This will give you

Array(    [color] => red    [time] => now    [greeting] => bonjour)


Query params are used like this:

use Illuminate\Http\Request;class ColorController extends BaseController{    public function index(Request $request){         $color = $request->query('color');    }