Slim PHP 및 GET 매개 변수
저는 Slim PHP를 RESTful API의 프레임워크로 사용하고 있습니다.
슬림 PHP의 URL에서 GET 파라미터를 가져오려면 어떻게 해야 합니까?
예를 들어 다음을 사용하려는 경우:
http://api.example.com/dataset/schools?zip=99999&radius=5
Slim 프레임워크 내에서 매우 쉽게 이 작업을 수행할 수 있으며 다음을 사용할 수 있습니다.
$paramValue = $app->request()->params('paramName');
$app는 Slim 인스턴스입니다.
아니면 좀 더 구체적으로 말씀하시려면
//GET 매개 변수
$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 v3 기준:
$app->get('/route', function ($request, $response, $args) {
$paramValue = $request->params(''); // equal to $_REQUEST
$paramValue = $request->post(''); // equal to $_POST
$paramValue = $request->get(''); // equal to $_GET
// ...
return $response;
});
Slim 3/4의 경우 이 방법을 사용해야 합니다.getQueryParams()
PSR 7에서Request
물건.
getQueryParams()를 사용하여 Request 개체의 연관 배열로 쿼리 매개 변수를 가져올 수 있습니다.
저는 json body 또는 url 파라미터를 받기 위해 api를 수정했습니다.
$data = json_decode($request->getBody()) ?: $request->params();
이것은 모두에게 맞지 않을 수도 있지만 저에게는 효과가 있었습니다.
슬림 3
$request->getQueryParam('page')
또는
$app->request->getQueryParam('page')
매개 변수 이름을 가진 매개 변수를 가져오려면
$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');
매개 변수 이름을 지정하지 않고 요청에서 모든 매개 변수를 가져오려면 모든 매개 변수를 KEY => VALUE 형식으로 배열로 가져올 수 있습니다.
$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
Slim 3.0에서는 다음 기능도 작동합니다.
routes.sys
require_once 'user.php';
$app->get('/user/create', '\UserController:create');
user.sys
class UserController
{
public function create($request, $response, array $args)
{
$username = $request->getParam('username'));
$password = $request->getParam('password'));
// ...
}
}
Slim PHP에 대해서는 잘 모르지만 URL에서 매개 변수에 액세스하려면 다음을 사용해야 합니다.
$_SERVER['QUERY_STRING']
이 문제를 해결하기 위해 구글에서 수많은 블로그 게시물을 찾을 수 있습니다.PHP 함수 parse_url을 사용할 수도 있습니다.
api 컨트롤러 함수 내부에 다음과 같은 줄 코드를 작성합니다.
public function your_api_function_name(Request $request, Response $response)
{
$data = $request->getQueryParams();
$zip = $data['zip'];
$radius = $data['radius'];
}
$data 변수에는 모든 쿼리 매개 변수가 포함됩니다.
대부분의 사람들에게는 분명하겠지만, 만약을 위해 슬림 3에 대한 vip의 답변을 바탕으로 다음과 같은 것을 사용하여 매개 변수 값을 얻을 수 있습니다.
$logger = $this->getService('logger');
$params = $request->getQueryParams();
if ($params) {
foreach ($params as $key => $param) {
if (is_array($param)) {
foreach ($param as $value) {
$logger->info("param[" . $key . "] = " . $value);
}
}
else {
$logger->info("param[" . $key . "] = " . $param);
}
}
}
언급URL : https://stackoverflow.com/questions/8125064/slim-php-and-get-parameters
'programing' 카테고리의 다른 글
Invoke-WebRequest로 모든 콘텐츠 표시 (0) | 2023.07.30 |
---|---|
선 그림에 인라인 레이블을 배치하는 방법 (0) | 2023.07.30 |
PL/SQL Developer에서 파이프라인 함수를 디버그하는 방법은 무엇입니까? (0) | 2023.07.30 |
Angular 2에서 부트스트랩 navbar "active" 클래스를 설정하는 방법은 무엇입니까? (0) | 2023.07.30 |
드롭다운에서 공백 뒤에 데이터 목록이 완전한 이름을 표시하지 않음 (0) | 2023.07.30 |