デフォルトのルートモデルバインディングをより安全なバージョンに置き換える 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
ドライバーを使用します。