uthman / hashid
此包最新版本(1.2.1)没有提供许可证信息。
一个简单的包,用于散列优雅的主键,由 erashdan/hashid 分支而来
1.2.1
2022-03-18 15:59 UTC
Requires
- php: ^7.4|^8.0
- hashids/hashids: ^3.0|^4.0
- illuminate/container: ^6.0|^7.0|^8.0|^9.0
- illuminate/contracts: ^6.0|^7.0|^8.0|^9.0
- illuminate/database: ^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- orchestra/testbench: ^4.0|^5.0|^6.0|^7.0
- phpunit/phpunit: ^5.7|6.2|^7.0|^9.4
This package is not auto-updated.
Last update: 2024-09-29 05:49:13 UTC
README
此包可以散列优雅记录的主键。
// Get Hash ID $user = \App\User::first(); $user->hashed_id; //x7LR5oQJleJX60yPpNWV
安装
此包可在 Laravel 5.5 或更高版本中使用。
您可以通过 composer 安装此包
composer require erashdan/hashid
Laravel 的包自动发现将自动为您注册服务提供者。
然后您需要将配置发布到您的项目中
php artisan vendor:publish --provider="Erashdan\Hashid\HashidServiceProvider" --tag="config"
并在 .env 文件中添加用于散列的密钥
HASHID_KEY=SET_YOUR_KEY
或者
使用 Laravel 的自有应用密钥,将 config/hashid.php 中的 key 参数更改为 Laravel 的应用密钥
'key' => env('APP_KEY'),
您还可以从 .env 文件中更改结果散列的长度。
HASHID_LENGTH=6
用法
Eloquent 默认不实现 hashid,因此您应该使用包提供的 trait。
use Illuminate\Database\Eloquent\Model; use Erashdan\Hashid\Traits\Hashid; class Post extends Model { use Hashid;
然后您可以在 eloquent 对象本身上使用 hashed_id 属性。
$post = \App\Models\Post::first(); $post->hashed_id; //x7LR5oQJleJX60yPpNWV
或者通过散列查找资源
$post = \App\Models\Post::FindOrFailHashed('x7LR5oQJleJX60yPpNWV'); $post->id; //1
验证
您可以验证散列 ID 是否存在于模型中
request()->validate([ 'post_id' => 'hashed_exists:' . \App\Post::class ]);
测试
composer test