Einführung
Laravel bietet mehrere Helper zur Erzeugung von URLs für Ihre Anwendung. Diese sind besonders nützlich beim Aufbau von Links in Templates oder API-Antworten sowie beim Generieren von Redirect-Antworten zu anderen Stellen Ihrer Anwendung.Grundlagen
URL erzeugen
Mit dem Helperurl erzeugen Sie beliebige URLs.
Die generierten URLs verwenden automatisch das Schema (HTTP oder HTTPS) und den Host der aktuellen Anfrage.
query.
Aktuelle URL abrufen
Wenn Sie dem Helperurl keinen Pfad übergeben, erhalten Sie eine Illuminate\Routing\UrlGenerator-Instanz mit Zugriff auf Informationen zur aktuellen URL.
URL verfügbar.
Vorherige URL abrufen
Manchmal möchten Sie die zuvor besuchte URL kennen. Dafür stellt der Helperurl die Methoden previous und previousPath bereit.
URLs für benannte Routen
Der Helperroute erzeugt URLs für benannte Routen.
Damit generieren Sie URLs unabhängig von der tatsächlichen Route-URL.
Ändert sich die URL der Route, müssen Sie die Aufrufe von route nicht anpassen.
Eloquent-Modelle
Häufig verwenden Sie den Route-Key (üblicherweise den Primärschlüssel) eines Eloquent-Modells zur URL-Erzeugung. Sie können das Modell direkt als Parameterwert übergeben;route extrahiert den Route-Key automatisch.
Signierte URLs
Laravel erlaubt es, „signierte” URLs für benannte Routen zu erstellen. An diese URLs wird ein „Signature”-Hash angehängt, sodass Laravel prüfen kann, ob die URL nach der Erzeugung manipuliert wurde. Signierte URLs sind besonders praktisch für öffentliche, aber vor Manipulation zu schützende Routen. Ein Beispiel ist ein öffentlicher „Abmelde”-Link, den Sie per E-Mail an Kunden versenden. Mit der MethodesignedRoute der Facade URL erstellen Sie signierte URLs.
absolute können Sie die Domain aus dem Signatur-Hash ausschließen.
temporarySignedRoute.
Beim Verifizieren prüft Laravel, dass der eingebettete Ablauf-Zeitstempel nicht überschritten wurde.
Ablauf der Verifizierung signierter URLs
Signierte Requests validieren
Um zu prüfen, ob eine eingehende Anfrage eine gültige Signatur besitzt, rufen Sie auf derIlluminate\Http\Request-Instanz hasValidSignature auf.
hasValidSignatureWhileIgnoring.
signed (Illuminate\Routing\Middleware\ValidateSignature) verwenden. Ohne gültige Signatur wird automatisch ein 403 zurückgegeben.
relative.
Reaktion auf ungültige signierte Routen
Wird eine abgelaufene signierte URL aufgerufen, erscheint die generische Fehlerseite mit Status403.
Passen Sie das Verhalten in bootstrap/app.php an, indem Sie eine eigene render-Closure für die Exception InvalidSignatureException definieren.
URLs zu Controller-Actions
Die Funktionaction erzeugt die URL zu einer angegebenen Controller-Action.
Fluent URI-Objekt
Die URI-Klasse von Laravel bietet eine fluent-Schnittstelle zum Erzeugen und Bearbeiten von URIs als Objekt.Default-Werte für URL-Parameter
Für bestimmte URL-Parameter möchten Sie eventuell requestweite Default-Werte setzen. Beispiel: Viele Routen enthalten einen{locale}-Parameter.
route explizit locale mitzugeben ist umständlich.
Mit URL::defaults legen Sie für den aktuellen Request einen Standardwert fest.
Diese Methode wird in der Regel innerhalb einer Route-Middleware aufgerufen, damit sie Zugriff auf den aktuellen Request hat.
locale gesetzt ist, müssen Sie ihn bei route-Aufrufen nicht mehr übergeben.
Das Setzen von URL-Defaults kann Laravels implizites Model Binding beeinträchtigen.
Sorgen Sie über die Middleware-Priorität dafür, dass Ihre Default-Middleware vor der
SubstituteBindings-Middleware ausgeführt wird.
In bootstrap/app.php konfigurieren Sie das über die Methode priority.