I'm playing with Slim PHP as a framework for a RESTful API, and so far it's great. Super easy to work with, but I do have one question I can't find the answer to. How do I grab GET params from the URL in Slim PHP?
For example, if I wanted to use the following:
http://api.example.com/dataset/schools?zip=99999&radius=5
A case of the Mondays? Am I overthinking it? Thanks in advance!
For Slim 3 you need to use the method
getQueryParams()
on the PSR 7Request
object.Citing the documentation:
You can do this very easily within the Slim framework, you can use:
$app here is a Slim instance.
Or if you want to be more specific
//GET parameter
//POST parameter
You would use it like so in a specific route
You can read the documentation on the request object http://docs.slimframework.com/request/variables/
IF YOU WANT TO GET PARAMS WITH PARAM NAME
The params() method will first search PUT variables, then POST variables, then GET variables. If no variables are found, null is returned. If you only want to search for a specific type of variable, you can use these methods instead:
//--- GET variable
//--- POST variable
//--- PUT variable
IF YOU WANT TO GET ALL PARAMETERS FROM REQUEST WITHOUT SPECIFYING PARAM NAME, YOU CAN GET ALL OF THEM INTO ARRAY IN FORMAT KEY => VALUE
$data will be an array that contains all fields from request as below
Hope it helps you!
I fixed my api to receive a json body OR url parameter like this.
This might not suit everyone but it worked for me.
Not sure much about Slim PHP, but if you want to access the parameters from a URL then you should use the:
You'll find a bunch of blog posts on Google to solve this. You can also use the PHP function parse_url.
Use
$id = $request->getAttribute('id'); //where id is the name of the param