talanov/nanoid

为 Laravel 模型添加 Nano ID

1.0.6 2023-12-01 13:21 UTC

This package is auto-updated.

Last update: 2024-09-30 01:47:07 UTC


README

生成类似于 Y-0_e8Fh 的唯一、URL 安全的哈希 ID

安装

composer require talanov/nanoid

使用

use Talanov\Nanoid\HasNanoId;
use Talanov\Nanoid\NanoIdOptions;
...

class User ...
{
    use HasNanoId;
    ...
    
    public function getNanoIdOptions(): NanoIdOptions
    {
        return NanoIdOptions::make()
            ->length(8) // Optional. Default is 8. 
            ->saveTo('nano_id'); // Optional. Default is 'nano_id'.
    }
    
    ...
}
Schema::create('users', static function (Blueprint $table) {
    $table->id();
    $table->char('nano_id', 8)->unique();
    ...
});
User::findByNano(['4kO3l_sl', 'oPn_12Hg'])->get();
User::findByNano(['4kO3l_sl', 'oPn_12Hg'])->paginate();

User::findByNano('4kO3l_sl')->firstOrFail();