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');
Toegang tot de inhoud van een cookie
$id = $request->cookies->get('PHPSESSID');
Dit retourneert de waarde van de 'PHPSESSID' cookie die door de browser is verzonden.