수색…


소개

Symfony의 Request 클래스는 HTTP 요청의 객체 지향 표현입니다. 여기에는 URL, 쿼리 문자열, 업로드 된 파일, 쿠키 및 브라우저에서 오는 다른 헤더와 같은 정보가 들어 있습니다.

통사론

  • $ request-> getPathInfo (); // 요청 된 경로 (URL의 로컬 부분)를 반환합니다 (그러나 쿼리 문자열은 제외). 즉, https://example.com/foo/bar?key=value 를 방문하면 / foo / bar가 포함됩니다.
  • $ request-> query-> get ( 'id'); // 쿼리 문자열 매개 변수를 반환합니다 ($ _GET).
  • $ request-> query-> get ( 'id', 1); // 기본값이있는 쿼리 문자열 매개 변수를 반환합니다.
  • $ request-> request-> get ( 'name'); // 요청 본문 변수를 반환합니다 ($ _POST).
  • $ request-> files-> get ( 'attachment'); // "attachment"로 식별되는 UploadedFile의 인스턴스를 반환합니다.
  • $ request-> cookies-> get ( 'PHPSESSID'); // 쿠키 값을 반환합니다 ($ _COOKIE).
  • $ request-> headers-> get ( 'content_type'); // HTTP 요청 헤더를 반환합니다.
  • $ request-> getMethod (); // HTTP 요청 메소드를 반환합니다 (GET, POST, PUT, DELETE 등).
  • $ request-> getLanguages ​​(); // 클라이언트가 수락하는 언어 배열을 반환합니다.

쿼리 문자열 매개 변수 얻기

페이지 번호가 쿼리 문자열 매개 변수로 전달되는 제품의 페이지 매김 목록을 작성하려고한다고 가정 해 보겠습니다. 예를 들어 세 번째 페이지를 가져 오려면 다음 페이지로 이동하십시오.

http://example.com/products?page=3

원시 HTTP 요청은 다음과 같습니다.

GET /products?page=3 HTTP/1.1
Host: example.com
Accept: text/html
User-Agent: Mozilla/5.0 (Macintosh)

요청 개체에서 페이지 번호를 가져 오려면 query 속성에 액세스 할 수 있습니다.

$page = $request->query->get('page'); // 3

page 매개 변수의 경우 쿼리 문자열 매개 변수가 설정되지 않은 경우 기본값을 전달해야 할 수 있습니다.

$page = $request->query->get('page', 1);

즉, 누군가가 http://example.com/products를 방문하면 (쿼리 문자열이 없음을 참고), $page 변수에 기본값 1 이 포함됩니다.

전역 변수에서 요청 객체 만들기

PHP는 $_POST , $_GET , $_FILES , $_SESSION 등과 같은 HTTP 요청에 대한 정보를 포함하는 많은 수의 전역 변수 를 노출합니다. Request 클래스는 요청을 인스턴스화하기 위해 정적 createFromGlobals() 메소드를 포함합니다 이러한 변수를 기반으로 한 객체 :

use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

Symfony 프레임 워크를 사용할 때 요청 객체를 직접 인스턴스화해서는 안됩니다. 대신 프레임 워크가 app.php / app_dev.php 에서 부트 스트랩 될 때 인스턴스화 된 객체를 사용해야합니다. 예를 들어 컨트롤러에 요청 객체 힌팅입력합니다 .

POST 변수 액세스

method="post" 를 사용하여 제출 된 양식의 내용을 가져 오려면 post 속성을 사용하십시오.

$name = $request->request->get('name');

쿠키의 내용에 접근하기

$id = $request->cookies->get('PHPSESSID');

이렇게하면 브라우저에서 보낸 'PHPSESSID'쿠키의 값이 반환됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow