Sök…
Introduktion
Symfony's Request-klass är en objektorienterad representation av HTTP-begäran. Den innehåller information som URL, frågesträng, uppladdade filer, cookies och andra rubriker som kommer från webbläsaren.
Syntax
- $ Begäran-> getPathInfo (); // returnerar sökvägen (lokal del av URL: en) som begärs (men utan frågesträngen). Det vill säga när du besöker https://example.com/foo/bar?key=value , detta kommer att innehålla / foo / bar
- $ Begäran-> query-> get ( 'id'); // returnerar en frågesträngparameter ($ _GET)
- $ begäran-> fråga-> get ('id', 1); // returnerar en frågesträngsparameter med ett standardvärde
- $ Begäran-> begäran-> get ( 'name'); // returnerar en förändringsorganets variabel ($ _POST)
- $ Begäran-> filer-> get ( 'bilaga'); // returnerar en instans av UploadedFile identifierad med "bilaga"
- $ Begäran-> cookies-> get ( 'PHPSESSID'); // returnerar värdet på en cookie ($ _COOKIE)
- $ Begäran-> headers-> get ( 'content_type'); // returnerar en HTTP-begäranrubrik
- $ Begäran-> getMethod (); // returnerar HTTP-förfrågningsmetoden (GET, POST, PUT, DELETE, etc.)
- $ Begäran-> getLanguages (); // returnerar en rad språk som klienten accepterar
Få en frågesträngparameter
Låt oss säga att vi vill bygga en paginerad lista med produkter, där sidens nummer skickas som en frågesträngsparameter. För att hämta den tredje sidan, till exempel, går du till:
http://example.com/products?page=3
Den råa HTTP-begäran ser ut så här:
GET /products?page=3 HTTP/1.1
Host: example.com
Accept: text/html
User-Agent: Mozilla/5.0 (Macintosh)
För att få sidnumret från förfrågningsobjektet kan du komma åt query
:
$page = $request->query->get('page'); // 3
I fallet med en page
parameter, kommer du förmodligen vill passera ett standardvärde om frågesträngen parametern inte är inställd:
$page = $request->query->get('page', 1);
Detta innebär att när någon besöker http://example.com/products (notera frånvaron av frågesträngen), kommer $page
-sidavariabeln att innehålla standardvärdet 1
.
Skapa ett Request-objekt från globala variabler
PHP exponerar ett antal så kallade globala variabler som innehåller information om HTTP-begäran, till exempel $_POST
, $_GET
, $_FILES
, $_SESSION
, etc. Klassen Request
innehåller en statisk createFromGlobals()
-metod för att instansera en begäran objekt baserat på dessa variabler:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
När du använder Symfony-ramverket bör du inte initiera begärdsobjektet själv. Istället bör du använda objektet som instanseras när ramverket startas i app.php
/ app_dev.php
. Till exempel genom att skriva antydan på förfrågningsobjektet i din controller .
Åtkomst till en POST-variabel
För att få innehållet i ett formulär som skickas in med method="post"
använder du post
:
$name = $request->request->get('name');
Åtkomst till innehållet i en cookie
$id = $request->cookies->get('PHPSESSID');
Detta returnerar värdet på cookien 'PHPSESSID' som skickas av webbläsaren.