faaren-tech / laravel-custom-uuids
一个提供类似Stripe的uuids的Laravel包
1.1.1
2023-03-31 09:19 UTC
Requires
- phpunit/phpunit: ^9.5
Requires (Dev)
- orchestra/testbench: ^6.24
This package is auto-updated.
Last update: 2024-09-30 02:10:39 UTC
README
此包提供与Stripe使用的uuids类似的uuids,以模型为前缀。
开放任务
- 添加命令以将此字段添加到现有模型
安装
运行以下命令
// Install the package
composer require faaren-tech/laravel-custom-uuids
// Publish relevant stubs for model and migration creation
php artisan custom-uuids:publish-stubs
用法
普通模型
只需继续使用以下命令来创建模型和迁移
php artisan make:model <MyModel>
创建新模型php artisan make:model <MyModel> -m
创建新模型和迁移php artisan make:migration <CreateMyModelTable>
创建新迁移类
感谢自定义占位符,生成的类将包含相关的接口和/或方法。
重要:您必须自行实现来自 FaarenTech\LaravelCustomUuids\Interfaces\HasCustomUuidInterface
的 public function getUuidPrefix(): string
。
用户模型和可认证模型
那些继承自 Illuminate\Foundation\Auth\User
的模型,例如 App\User
模型,您需要进行一些额外的工作。
- 将父类更改为
FaarenTech\LaravelCustomUuids\Models\UuidModel
- 添加以下接口
Illuminate\Contracts\Auth\Access\Authorizable
Illuminate\Contracts\Auth\Authenticatable
Illuminate\Contracts\Auth\CanResetPassword
- 将以下特质添加到您的模型中
Illuminate\Auth\Authenticatable
Illuminate\Foundation\Auth\Access\Authorizable
Illuminate\Auth\Passwords\CanResetPassword
Illuminate\Auth\MustVerifyEmail
可能的实现如下所示
<?php namespace App\Models; use FaarenTech\LaravelCustomUuids\Models\UuidModel; use Illuminate\Auth\Passwords\CanResetPassword; use Illuminate\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\Access\Authorizable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; use Illuminate\Auth\Authenticatable; use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; class User extends UuidModel implements AuthenticatableContract, AuthorizableContract, CanResetPasswordContract, HasCustomUuidInterface { use Authenticatable, Authorizable, CanResetPassword, MustVerifyEmail, HasApiTokens, HasFactory, Notifiable; public function getUuidPrefix(): string { return "user"; } }
自定义占位符
当然,您可以自由地自定义提供的占位符。它们存储在 */stubs
中。