如何在 laravel 中生成唯一 ID?

How I can generate the unique ID in laravel?

我正在 Laravel 完成我的毕业设计,想要生成小型唯一 ID“最多 9 个字符”...我不需要 UUID,因为这会生成 36 个字符,这太长了长.

您可以像这样使用 PHP 函数:

function unique_code($limit)
{
  return substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, $limit);
}
echo unique_code(9);

输出如下:

s5s108dfc

这里是规格:

  • base_convert – 在任意基数之间转换数字。
  • sha1 – 计算字符串的 sha1 散列。
  • uniqid – 生成一个 唯一 ID。
  • mt_rand – 通过 Mersenne Twister Random 生成一个随机值 数字生成器。

或者在 Laravel 中你可以使用 laravel Str 库: 只需使用这个:

use Illuminate\Support\Str;
$uniqid = Str::random(9);

您可以使用此库生成随机字符串:

使用Illuminate\Support\Str;

$id = Str::random(9);

你可以用这个,

$unique_id= echo floor(time()-999999999);

这是根据时间生成一个 9 位唯一值。

生成自定义唯一 ID 或代码(带前缀或后缀或两者或仅唯一 ID)或在 laravel 框架中更改前缀或后缀或两者后重置您的 ID

访问https://github.com/SirajCse/laravel-unique-id-generator

示例: Inv-000001/12/21

UniqueIdGenerator::generate(['table' => 'invoices','field'=>'invoice_id','length' => 16,'prefix' => 'Inv-', 'suffix' => date('/m/y')]);

'table' => 'invoices' [sting table name]
'field'=>'invoice_id' [Default 'id'] [Optional][any string field name]
'length' => 12 [Integer value Id length]
'prefix'=>'Inv-' [Default ''] [Optional] [any string]
'suffix'=>date('/m/y') [Default ''] [Optional][any string]
'reset_on_change'=>false[ Default false] [Optional] [Options are 1.prefix , 2.suffix 3.both 4.false]
uniqueId=000001