我正在玩Slim PHP作爲RESTful API的框架,到目前爲止它非常棒。超級易於使用,但我確實有一個問題,我無法找到答案。如何從Slim PHP中的URL獲取GET參數?Slim PHP和GET參數
例如,如果我想使用以下命令:
http://api.example.com/dataset/schools?zip=99999&radius=5
的星期一的情況下?我是否在推翻它?提前致謝!
我正在玩Slim PHP作爲RESTful API的框架,到目前爲止它非常棒。超級易於使用,但我確實有一個問題,我無法找到答案。如何從Slim PHP中的URL獲取GET參數?Slim PHP和GET參數
例如,如果我想使用以下命令:
http://api.example.com/dataset/schools?zip=99999&radius=5
的星期一的情況下?我是否在推翻它?提前致謝!
可以修身框架內做到這一點很容易,你可以使用:
$paramValue = $app->request()->params('paramName');
$此應用程序是一個苗條的實例。
或者,如果你想更具體的
//獲取參數
$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/
不知道很多關於修身PHP,但如果你想從一個URL訪問參數,那麼你應該使用:
$_SERVER['QUERY_STRING']
你會發現一堆在谷歌博客文章來解決這個問題。您也可以使用PHP功能parse_url。
我修復了我的api以接收這樣的json主體或url參數。
$data = json_decode($request->getBody()) ?: $request->params();
這可能不適合每個人,但它對我有用。
IF你想獲得PARAMS WITH PARAM NAME
$value = $app->request->params('key');
的PARAMS()方法將首先搜索PUT變量,然後POST變量,然後GET變量。如果找不到變量,則返回null。如果你只是想搜索特定類型的變量,你可以使用這些方法來代替:
// --- GET變量
$paramValue = $app->request->get('paramName');
// --- POST變量
$paramValue = $app->request->post('paramName');
// --- PUT變量
$paramValue = $app->request->put('paramName');
IF要獲取所有參數FROM REQUEST而不指定PARAM NAME, 你可以得到所有THEM到陣列中FORMAT KEY => VALUE
$data = json_decode($app->request->getBody()) ?: $app->request->params();
$數據將是一個陣列,其包含請求的所有領域如下
$data = array(
'key' => 'value',
'key' => 'value',
//...
);
希望它可以幫助你!
對於超薄3您需要在PSR 7 Request
對象上使用方法getQueryParams()
。
可以使用getQueryParams得到查詢參數作爲 Request對象的關聯數組()。
如果參數丟失,您還可以使用getQueryParam($ key,$ default = null)獲取單個查詢參數值,並使用可選的缺省值 值。
謝謝你張貼這個。很難找到與Slim 3相關的問題和答案。 –
使用$id = $request->getAttribute('id'); //where id is the name of the param
在超薄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'));
// ...
}
}
這些都不是GET參數?你確定? – Galled
Blerg!我的意思是GET,不是POST,對不起。 –
$ _GET變量如何?不起作用? – Galled