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'); }