Ein Laravel-Paket, das die Standard-Routenmodellbindung durch eine sicherere Version ersetzt.
Sie können dieses Paket mit Composer installieren:
composer require markwalet/laravel-hashed-route
Laravel 5.5 nutzt die automatische Paketerkennung, sodass Sie den Dienstanbieter nicht registrieren müssen. Wenn Sie den Dienstanbieter manuell registrieren möchten, fügen Sie die folgende Zeile zu Ihrer Datei config/app.php
hinzu:
MarkWalet LaravelHashedRoute HashedRouteServiceProvider::class
Wenn Sie die Routen für ein bestimmtes Modell hashen möchten. Sie müssen lediglich das Merkmal HasHashedRouteKey
hinzufügen:
use MarkWalet LaravelHashedRoute Concerns HasHashedRouteKey ;
class TestModel extends Model
{
use HasHashedRouteKey;
//...
}
Danach können Sie das Modell wie gewohnt verwenden. Da das Merkmal die Methoden resolveRouteBinding()
und getRouteKey()
überschreibt, sind keine zusätzlichen Änderungen an Ihrem Code erforderlich.
Sie müssen Ihren Code ändern, wenn Sie Ihre URLs erstellen, indem Sie die Eigenschaft $model->id
manuell aus Ihrem Modell abrufen. Dann müssen Sie diese Aufrufe in $model->getRouteKey()
ändern.
Die Standardkonfiguration ist in hashed-route.php
definiert. Wenn Sie diese Datei bearbeiten möchten, können Sie sie mit dem folgenden Befehl in Ihren Konfigurationsordner kopieren:
php artisan vendor:publish --provider= " MarkWaletLaravelHashedRouteHashedRouteServiceProvider "
In dieser Datei können Sie verschiedene Codecs für die Kodierung und Dekodierung von Schlüsseln konfigurieren sowie eine Standardkonfiguration festlegen.
Sie können diese Konfiguration überschreiben, indem Sie die codec
Eigenschaft Ihres Modells festlegen.
Die unterstützten Codec-Treiber sind: null
, hashids
, optimus
und base64
. Verwenden Sie den null
, wenn Sie das Routenschlüssel-Hashing deaktivieren möchten.