Access query string values from Laravel

75,891

Solution 1

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
)

Solution 2

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.

Solution 3

Query params are used like this:

use Illuminate\Http\Request;

class ColorController extends BaseController{

    public function index(Request $request){
         $color = $request->query('color');
    }
Share:
75,891
Melvin Koopmans
Author by

Melvin Koopmans

Hi! I'm Melvin Koopmans. I'm a 20 year old software developer from The Netherlands. I specialise in Web Applications using PHP (Laravel/Symfony/WordPress), JavaScript (VueJS) &amp; HTML/CSS. Currently I'm specialising further in AI, ML &amp; DL (especially in the context of Web Apps). Feel free to send me a message if you want to know more about me. "Clean code always looks like it was written by someone who cares." - Robert C. Martin

Updated on July 09, 2022

Comments

  • Melvin Koopmans
    Melvin Koopmans almost 2 years

    Does anyone know if it's possible to make use of URL query's within Laravel.

    Example

    I have the following route:

    Route::get('/text', 'TextController@index');
    

    And the text on that page is based on the following url query:

    http://example.com/text?color={COLOR}
    

    How would I approach this within Laravel?