vanthao03596/laravel-ulid

Laravel 的 ULID (Universally Unique Lexicographically Sortable Identifier) 扩展包

0.1 2021-08-24 13:11 UTC

This package is auto-updated.

Last update: 2024-09-24 20:24:57 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

安装

您可以通过 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)。请参阅 许可文件 了解更多信息。