markwalet/laravel-hashed-route

一个Laravel包,用于替换默认的路由模型绑定,以提供更安全版本。

v2.8.0 2023-07-06 18:13 UTC

README

Laravel hashed route

MIT Licensed Latest Stable Version Build status Coverage StyleCI Total Downloads

一个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()方法,所以您不需要对代码进行额外更改。

当您通过手动从模型中获取$model->id属性来构建URL时,您必须更改代码。然后,您必须将这些调用更改为$model->getRouteKey()

配置

默认配置定义在hashed-route.php中。如果您想编辑此文件,可以使用以下命令将其复制到您的配置文件夹中

php artisan vendor:publish --provider="MarkWalet\LaravelHashedRoute\HashedRouteServiceProvider"

在此文件中,您可以配置不同的编解码器,用于键的编码和解码,以及设置默认配置。

您可以通过在模型上设置codec属性来覆盖此配置。

支持的编解码器驱动程序有:nullhashidsoptimus & base64。如果您想禁用路由键哈希,请使用null驱动程序。