webdevetc/laraveluniqueidetc

此包已被废弃,不再维护。没有推荐替代包。

轻松为您的 Laravel eloquent 模型添加唯一 ID 字段。每次在 Laravel 中创建使用此特性的新 eloquent 模型时,它将自动设置唯一 ID 列

v1.0.1 2018-11-19 18:20 UTC

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联系我,我会尽快回复。