Пакет Laravel, который заменяет привязку модели маршрута по умолчанию на более безопасную версию.
Вы можете установить этот пакет с помощью композитора:
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
. Если вы хотите отредактировать этот файл, вы можете скопировать его в папку конфигурации, используя следующую команду:
php artisan vendor:publish --provider= " MarkWaletLaravelHashedRouteHashedRouteServiceProvider "
В этом файле вы можете настроить разные кодеки для кодирования и декодирования ключей, а также задать конфигурацию по умолчанию.
Вы можете переопределить эту конфигурацию, установив свойство codec
в своей модели.
Поддерживаемые драйверы кодеков: null
, hashids
, optimus
и base64
. Используйте null
драйвер, если хотите отключить хеширование ключей маршрута.