Suche…


Einführung

Die Request-Klasse von Symfony ist eine objektorientierte Darstellung der HTTP-Anfrage. Es enthält Informationen wie URL, Abfragezeichenfolge, hochgeladene Dateien, Cookies und andere Header, die vom Browser stammen.

Syntax

  • $ request-> getPathInfo (); // gibt den Pfad (lokaler Teil der URL) zurück, der angefordert wird (jedoch ohne die Abfragezeichenfolge). Wenn Sie also https://example.com/foo/bar?key=value besuchen, wird dies / foo / bar enthalten
  • $ request-> query-> get ('id'); // gibt einen Abfragezeichenfolge-Parameter zurück ($ _GET)
  • $ request-> query-> get ('id', 1); // gibt einen Abfragezeichenfolgeparameter mit einem Standardwert zurück
  • $ request-> request-> get ('name'); // gibt eine Anforderungstextvariable zurück ($ _POST)
  • $ request-> files-> get ('attachment'); // gibt eine Instanz von UploadedFile zurück, die durch "attachment" identifiziert wird
  • $ request-> cookies-> get ('PHPSESSID'); // gibt den Wert eines Cookies zurück ($ _COOKIE)
  • $ request-> headers-> get ('content_type'); // gibt einen HTTP-Anforderungsheader zurück
  • $ request-> getMethod (); // gibt die HTTP-Anforderungsmethode zurück (GET, POST, PUT, DELETE usw.)
  • $ request-> getLanguages ​​(); // gibt ein Array von Sprachen zurück, die der Client akzeptiert

Abfrageparameter abfragen

Nehmen wir an, wir möchten eine paginierte Liste von Produkten erstellen, bei denen die Seitennummer als Parameter für die Abfragezeichenfolge übergeben wird. Um zum Beispiel die dritte Seite abzurufen, gehen Sie zu:

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

Die rohe HTTP-Anfrage würde ungefähr so ​​aussehen:

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

Um die Seitennummer vom Anforderungsobjekt zu erhalten, können Sie auf die query zugreifen:

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

Im Falle eines page möchten Sie wahrscheinlich einen Standardwert übergeben, falls der Parameter für die Abfragezeichenfolge nicht festgelegt ist:

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

Das heißt, wenn jemand http://example.com/products besucht (beachten Sie das Fehlen der Abfragezeichenfolge), enthält die $page Variable den Standardwert 1 .

Anforderungsobjekt aus globalen Variablen erstellen

PHP macht eine Reihe sogenannter globaler Variablen $_POST , die Informationen über die HTTP-Anforderung enthalten, wie z. B. $_POST , $_GET , $_FILES , $_SESSION usw. Die Request Klasse enthält eine statische createFromGlobals() -Methode, um eine Anfrage zu instantiieren Objekt basierend auf diesen Variablen:

use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

Wenn Sie das Symfony-Framework verwenden, sollten Sie das Anforderungsobjekt nicht selbst instanziieren. Verwenden Sie stattdessen das Objekt, das instanziiert wird, wenn das Framework in app.php / app_dev.php . Zum Beispiel durch Typ, der auf das Anforderungsobjekt in Ihrer Steuerung hinweist .

Zugriff auf eine POST-Variable

Um den Inhalt eines Formulars abzurufen, das mit method="post" , verwenden Sie die post -Eigenschaft:

$name = $request->request->get('name');

Zugriff auf den Inhalt eines Cookies

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

Dadurch wird der vom Browser gesendete Wert des 'PHPSESSID'-Cookies zurückgegeben.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow