簡體   English   中英

如何在 laravel 中生成唯一 ID?

[英]How I can generate the unique ID in laravel?

我正在 Laravel 中處理我的畢業項目,並且想要生成小的唯一 ID“最大 9 個字符”...我不需要 UUID,因為這會生成 36 個字符,這太長了。

您可以像這樣使用 PHP function :

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

Output 看起來像:

s5s108dfc

這里的規格:

  • base_convert – 在任意基數之間轉換一個數字。
  • sha1 – 計算字符串的 sha1 hash。
  • uniqid – 生成唯一 ID。
  • mt_rand – 通過 Mersenne Twister 隨機數生成器生成一個隨機值。

或者在 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 位數的唯一值。

在 laravel 框架中生成自定義唯一 ID 或代碼(帶前綴或后綴或兩者或僅唯一 ID)或在更改前綴或后綴或兩者后重置您的 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM