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');
$id = $request->cookies->get('PHPSESSID');

Detta returnerar värdet på cookien 'PHPSESSID' som skickas av webbläsaren.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow