Szukaj…


Wprowadzenie

Klasa Request Symfony jest zorientowaną obiektowo reprezentacją żądania HTTP. Zawiera informacje, takie jak adres URL, ciąg zapytania, przesłane pliki, pliki cookie i inne nagłówki pochodzące z przeglądarki.

Składnia

  • $ request-> getPathInfo (); // zwraca żądaną ścieżkę (lokalną część adresu URL) (ale bez ciągu zapytania). Tj. Podczas odwiedzania https://example.com/foo/bar?key=value , będzie to zawierać / foo / bar
  • $ request-> query-> get ('id'); // zwraca parametr ciągu zapytania ($ _GET)
  • $ request-> query-> get ('id', 1); // zwraca parametr ciągu zapytania o wartości domyślnej
  • $ request-> request-> get ('name'); // zwraca zmienną treści żądania ($ _POST)
  • $ request-> pliki-> get ('załącznik'); // zwraca instancję pliku UploadedFile identyfikowanego przez „załącznik”
  • $ request-> cookies-> get ('PHPSESSID'); // zwraca wartość pliku cookie ($ _COOKIE)
  • $ request-> headers-> get ('content_type'); // zwraca nagłówek żądania HTTP
  • $ request-> getMethod (); // zwraca metodę żądania HTTP (GET, POST, PUT, DELETE itp.)
  • $ request-> getLanguages (); // zwraca tablicę języków akceptowanych przez klienta

Uzyskiwanie parametru ciągu zapytania

Powiedzmy, że chcemy zbudować paginowaną listę produktów, w której numer strony jest przekazywany jako parametr ciągu zapytania. Na przykład, aby pobrać trzecią stronę, przejdź do:

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

Surowe żądanie HTTP wyglądałoby mniej więcej tak:

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

Aby uzyskać numer strony z obiektu żądania, możesz uzyskać dostęp do właściwości query :

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

W przypadku parametru page prawdopodobnie będziesz chciał przekazać wartość domyślną, jeśli parametr ciągu zapytania nie jest ustawiony:

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

Oznacza to, że gdy ktoś wejdzie na http://example.com/products (zwróć uwagę na brak ciągu zapytania), zmienna $page będzie zawierać wartość domyślną 1 .

Tworzenie obiektu żądania ze zmiennych globalnych

PHP udostępnia szereg tak zwanych zmiennych globalnych, które zawierają informacje o żądaniu HTTP, takie jak $_POST , $_GET , $_FILES , $_SESSION itp. Klasa Request zawiera statyczną createFromGlobals() w celu utworzenia wystąpienia obiekt oparty na tych zmiennych:

use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

Korzystając ze środowiska Symfony, nie powinieneś sam tworzyć instancji obiektu żądania. Zamiast tego powinieneś użyć obiektu, który jest tworzony podczas app.php frameworku w app.php / app_dev.php . Na przykład wpisując podpowiedź do obiektu żądania w kontrolerze .

Dostęp do zmiennej POST

Aby uzyskać zawartość formularza przesłanego za pomocą method="post" , użyj właściwości post :

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

Zwróci to wartość pliku cookie „PHPSESSID” przesłanego przez przeglądarkę.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow