Zoeken…


Invoering

De Request-klasse van Symfony is een objectgeoriënteerde weergave van het HTTP-verzoek. Het bevat informatie zoals de URL, de zoekopdracht, geüploade bestanden, cookies en andere headers die uit de browser komen.

Syntaxis

  • $ Aanvraag-> getPathInfo (); // retourneert het pad (lokaal deel van de URL) dat wordt aangevraagd (maar zonder de queryreeks). Dat wil zeggen wanneer u https://example.com/foo/bar?key=value bezoekt, bevat dit / foo / bar
  • $ Aanvraag-> query-> get ( 'id'); // retourneert een querystringparameter ($ _GET)
  • $ request-> query-> get ('id', 1); // retourneert een querystringparameter met een standaardwaarde
  • $ Aanvraag-> aanvraag-> get ( 'name'); // retourneert een bodytekstvariabele ($ _POST)
  • $ Aanvraag-> bestanden-> get ( 'attachment'); // retourneert een exemplaar van UploadedFile geïdentificeerd door "bijlage"
  • $ Aanvraag-> cookies-> get ( 'PHPSESSID'); // retourneert de waarde van een cookie ($ _COOKIE)
  • $ Aanvraag-> headers-> get ( 'content_type'); // retourneert een HTTP-verzoekkop
  • $ Aanvraag-> getMethod (); // retourneert de HTTP-verzoekmethode (GET, POST, PUT, DELETE, etc.)
  • $ Aanvraag-> getLanguages (); // retourneert een reeks talen die de client accepteert

Een querystringparameter ophalen

Laten we zeggen dat we een gepagineerde lijst met producten willen maken, waarbij het nummer van de pagina wordt doorgegeven als een parameter voor een queryreeks. Als u bijvoorbeeld de 3e pagina wilt ophalen, gaat u naar:

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

Het onbewerkte HTTP-verzoek zou er ongeveer zo uitzien:

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

Om het paginanummer van het aanvraagobject te krijgen, hebt u toegang tot de eigenschap query :

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

In het geval van een page parameter, zult u waarschijnlijk willen een standaard waarde in het geval de parameter query string niet is ingesteld passeren:

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

Dit betekent dat wanneer iemand http://example.com/products bezoekt (let op de afwezigheid van de zoekreeks), de variabele $page de standaardwaarde 1 .

Een aanvraagobject maken op basis van globale variabelen

PHP onthult een aantal zogenaamde globale variabelen die informatie bevatten over het HTTP-verzoek, zoals $_POST , $_GET , $_FILES , $_SESSION , enz. De klasse Request bevat een statische methode createFromGlobals() om een verzoek te instantiëren object gebaseerd op deze variabelen:

use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

Wanneer u het Symfony-framework gebruikt, moet u het aanvraagobject niet zelf instantiëren. In plaats daarvan moet u het object gebruiken dat wordt gestart wanneer het framework wordt app.php in app.php / app_dev.php . Bijvoorbeeld door het verzoekobject in uw controller te typen .

Toegang tot een POST-variabele

Gebruik de eigenschap post om de inhoud te krijgen van een formulier dat is verzonden met method="post" :

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

Dit retourneert de waarde van de 'PHPSESSID' cookie die door de browser is verzonden.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow