Paket Laravel yang menggantikan pengikatan model rute default untuk versi yang lebih aman.
Anda dapat menginstal paket ini dengan composer:
composer require markwalet/laravel-hashed-route
Laravel 5.5 menggunakan Package auto-discovery, sehingga Anda tidak perlu mendaftarkan penyedia layanan. Jika Anda ingin mendaftarkan penyedia layanan secara manual, tambahkan baris berikut ke file config/app.php
Anda:
MarkWalet LaravelHashedRoute HashedRouteServiceProvider::class
Saat Anda ingin melakukan hashing pada rute untuk model tertentu. Satu-satunya hal yang harus Anda lakukan adalah menambahkan sifat HasHashedRouteKey
:
use MarkWalet LaravelHashedRoute Concerns HasHashedRouteKey ;
class TestModel extends Model
{
use HasHashedRouteKey;
//...
}
Setelah itu Anda bisa menggunakan model seperti biasa. Karena sifat tersebut menggantikan metode resolveRouteBinding()
dan getRouteKey()
, tidak ada perubahan tambahan yang diperlukan pada kode Anda.
Anda harus mengubah kode saat membuat url dengan mendapatkan properti $model->id
secara manual dari model Anda. Kemudian Anda harus mengubah panggilan tersebut menjadi $model->getRouteKey()
.
Konfigurasi default ditentukan dalam hashed-route.php
. Jika Anda ingin mengedit file ini, Anda dapat menyalinnya ke folder konfigurasi Anda dengan menggunakan perintah berikut:
php artisan vendor:publish --provider= " MarkWaletLaravelHashedRouteHashedRouteServiceProvider "
Dalam file ini Anda dapat mengkonfigurasi codec yang berbeda untuk pengkodean dan decoding kunci, serta mengatur konfigurasi default.
Anda dapat mengganti konfigurasi ini dengan mengatur properti codec
pada model Anda.
Driver codec yang didukung adalah: null
, hashids
, optimus
& base64
. Gunakan driver null
jika Anda ingin menonaktifkan hashing kunci rute.