デフォルトのルートモデルバインディングをより安全なバージョンに置き換える Laravel パッケージ。
このパッケージは、composer を使用してインストールできます。
composer require markwalet/laravel-hashed-route Laravel 5.5 はパッケージ自動検出を使用するため、サービスプロバイダーを登録する必要はありません。サービスプロバイダーを手動で登録する場合は、 config/app.phpファイルに次の行を追加します。
MarkWalet LaravelHashedRoute HashedRouteServiceProvider::class特定のモデルのルートをハッシュする場合。必要なのは、 HasHashedRouteKeyトレイトを追加することだけです。
use MarkWalet LaravelHashedRoute Concerns HasHashedRouteKey ;
class TestModel extends Model
{
use HasHashedRouteKey;
//...
}その後は、通常どおりモデルを使用できます。この特性は、 resolveRouteBinding()メソッドとgetRouteKey()メソッドをオーバーライドするため、コードに追加の変更を加える必要はありません。
URL を構築するときは、モデルから$model->idプロパティを手動で取得してコードを変更する必要があります。次に、それらの呼び出しを$model->getRouteKey()に変更する必要があります。
デフォルト設定はhashed-route.phpで定義されています。このファイルを編集したい場合は、次のコマンドを使用して config フォルダーにコピーできます。
php artisan vendor:publish --provider= " MarkWaletLaravelHashedRouteHashedRouteServiceProvider "このファイルでは、キーのエンコードとデコード用にさまざまなコーデックを構成したり、デフォルト構成を設定したりできます。
モデルのcodecプロパティを設定することで、この構成をオーバーライドできます。
サポートされているコーデック ドライバーは、 null 、 hashids 、 optimus 、およびbase64です。ルート キー ハッシュを無効にする場合は、 nullドライバーを使用します。