vanthao03596 / laravel-ulid
Laravel 的 ULID (Universally Unique Lexicographically Sortable Identifier) 扩展包
0.1
2021-08-24 13:11 UTC
Requires
- php: ^7.4|^8.0
- illuminate/contracts: ^8.37
- robinvdvleuten/ulid: ^5.0
Requires (Dev)
- brianium/paratest: ^6.2
- mockery/mockery: ^1.4.1
- nunomaduro/collision: ^5.3
- orchestra/testbench: ^6.15
- phpunit/phpunit: ^9.3.3
README
安装
您可以通过 composer 安装此包
composer require vanthao03596/laravel-ulid
使用方法
从 Str 支持类生成 ulid
// Default ulid generator with the current timestamp & lowercase string Str::ulid(); // 01FDRXQ57VR4K4RASPT9NPAQC0 // Default ulid generator with the current timestamp & uppercase string Str::ulid(false); // 01fdrxpmg9njp20z3km461fgax // Default ulid generator with the given datetime & uppercase string Str::ulid(false, Carbon::now()->subHour()) // 01FDRTD2K8Z664S24X606N14KD
只需在迁移文件中声明 ulid 列类型。
Schema::create('foos', function (Blueprint $table) { $table->ulid('id')->primary(); // adds primary ulid column $table->foreignUlid('user_id')->constrained()->cascadeOnDelete(); // adds ulid foreignkey $table->ulidMorphs('taggable'); // adds ulid morphs $table->nullableUlidMorphs('likeable'); // adds nullable ulid morphs });
在模型中自动生成 ulid 列
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Vanthao03596\LaravelUlid\GeneratesUlid; class User extends Model { use GeneratesUlid; }
默认列是 ulid
。如果您想使用自定义列名,例如,如果要将主 custom_column
列设置为 ULID
,您可以在模型中定义一个 ulidColumn
方法。
class User extends Model { public function ulidColumn(): string { return 'custom_column'; } }
您可以通过指定数组在表中具有多个 ULID 列。
class User extends Model { public function ulidColumns(): array { return ['ulid', 'custom_column']; } }
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近的变化。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请查看 我们的安全策略 了解如何报告安全漏洞。
致谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。