瘦身PHP和GET参数
我正在使用Slim PHP作为一个RESTful API的框架,到目前为止它非常棒。 超级简单,但我有一个问题,我找不到答案。 如何从Slim PHP中的URL获取GET参数?
例如,如果我想使用以下内容:
http://api.example.com/dataset/schools?zip=99999&radius=5
星期一的情况? 我是否过度了? 提前致谢!
您可以在Slim框架内很容易地做到这一点,您可以使用:
$paramValue = $app->request()->params('paramName');
这里的$ app是一个Slim实例。
或者如果你想更具体
//获取参数
$paramValue = $app->request()->get('paramName');
// POST参数
$paramValue = $app->request()->post('paramName');
你会像这样在特定的路线使用它
$app->get('/route', function () use ($app) { $paramValue = $app->request()->params('paramName'); });
您可以阅读请求对象http://docs.slimframework.com/request/variables/上的文档;
对于Slim 3,您需要使用PSR 7 Request
对象上的getQueryParams()
方法。
引用文档 :
您可以使用getQueryParams()将查询参数作为Request对象上的关联数组。
您还可以使用getQueryParam($ key,$ default = null)获取单个查询参数值,并使用可选的缺省值(如果参数丢失)。
我修复了我的API接收像这样的json体或URL参数。
$data = json_decode($request->getBody()) ?: $request->params();
这可能不适合每个人,但它为我工作。
对Slim PHP不太了解,但是如果你想从一个URL访问参数,那么你应该使用:
$_SERVER['QUERY_STRING']
你会在Google上find一堆博客post来解决这个问题。 您也可以使用PHP函数parse_url 。
如果您想要参数名称参数
$value = $app->request->params('key');
params()方法将首先searchPUTvariables,然后是POSTvariables,然后是GETvariables。 如果找不到variables,则返回null。 如果您只想search特定types的variables,则可以使用这些方法:
// — GETvariables
$paramValue = $app->request->get('paramName');
// — POSTvariables
$paramValue = $app->request->post('paramName');
// — PUTvariables
$paramValue = $app->request->put('paramName');
如果您希望获取所有参数而不指定参数名称,则可以将其全部格式化为格式键=>值
$data = json_decode( $app->request->getBody() ) ?: $app->request->params();
$ data将是一个包含请求的所有字段的数组,如下所示
$data = array( 'key' => 'value', 'key' => 'value', //... );
希望它可以帮助你!
使用$id = $request->getAttribute('id'); //where id is the name of the param
$id = $request->getAttribute('id'); //where id is the name of the param
在Slim 3.0中,以下内容也起作用:
routes.php文件
require_once 'user.php'; $app->get('/user/create', '\UserController:create');
user.php的
class UserController { public function create($request, $response, array $args) { $username = $request->getParam('username')); $password = $request->getParam('password')); // ... } }