Access query string values from Laravel

后端 未结 4 635
悲哀的现实
悲哀的现实 2020-11-30 08:34

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

Example

I have the following route:

Route::ge         


        
相关标签:
4条回答
  • 2020-11-30 08:59

    Query params are used like this:

    use Illuminate\Http\Request;
    
    class ColorController extends BaseController{
    
        public function index(Request $request){
             $color = $request->query('color');
        }
    
    0 讨论(0)
  • 2020-11-30 09:07

    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.

    0 讨论(0)
  • 2020-11-30 09:15
    public function fetchQuery(Request $request){
      $object = $request->query('object');
      $value = $request->query('value');
    }
    
    0 讨论(0)
  • 2020-11-30 09:17

    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
    )
    
    0 讨论(0)
提交回复
热议问题