webdevetc / laraveluniqueidetc
轻松为您的 Laravel eloquent 模型添加唯一 ID 字段。每次在 Laravel 中创建使用此特性的新 eloquent 模型时,它将自动设置唯一 ID 列
Requires
- illuminate/database: ~5.5.0|~5.6.0|5.7.*
- illuminate/support: ~5.5.0|~5.6.0|5.7.*
Requires (Dev)
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2020-09-03 14:39:35 UTC
README
易于安装的包,用于在 Eloquent 模型中创建唯一 ID。只需使用 composer 导入此包,然后使用包含的特性文件,它将自动生成唯一 ID
介绍
这是WebDevEtc的 Laravel Unique Id 包。
它实际上只有一个主要文件(以及一个异常和一个测试文件)。它并不复杂。但如果您想在公共接口上使用某种形式的 ID,但仍然使用自增整数作为实际的主键,这可能很有用。
创建新的 Eloquent 项目时,它将运行一个循环(直到达到最大尝试次数,然后抛出异常)以尝试创建一个唯一的 ID,并检查该 ID 是否存在于数据库中。如果不存在的,它将设置该 ID 作为唯一 ID。
我在几个项目中使用了这个,所以我想把它放到网上,也许它能帮助到其他人。如果您觉得这个有用,请在 Github 上给它一个星标:)
测试假设您已经安装了 Laravel。
使用(非常简单!)
在 composer 中要求它
composer require webdevetc/laraveluniqueidetc
运行以下命令以复制配置文件(到 config/uniqueid.php
)
php artisan vendor:publish --tag=uniqueidetc_config
然后只需将以下内容添加到您的 Eloquent 模型中
use \WebDevEtc\LaravelUniqueIdEtc;
以使用包含的特性文件。
您还必须创建一个数据库迁移以添加唯一 ID 字段。默认情况下为 unique_id
。
例如,要将 unique_id 字段添加到您的 User 模型(使用 users
表)
php artisan make:migration --table='users'
然后在迁移的 up 方法中添加以下内容
$table->string("unique_id")->unique();
在 down() 方法中
$table->dropColumn("unique_id");
工作原理
它使用 static::creating()
方法。
这通过 new Model([])
和 Model::create([])
进行测试。
它假设您不需要在以后重新创建它 - 它只会创建唯一 ID 一次。
配置选项
有一些选项,可以通过向您的模型添加一些方法进行配置。
请参阅 UniqueId 特性以获取详细信息。它们在文件顶部。
它们是方法而不是变量,这样您就有机会实现更多逻辑。它们只会在创建对象并首次保存时调用
变更日志历史
- 1.0.1 - 稍微的改动
- 1.0 - 首次发布
问题、支持、错误报告、安全问题
请通过WebDev Etc上的联系方式或twitter联系我,我会尽快回复。