ランダムな文字列やユニークなIDをLaravelで生成
random
use Illuminate\Support\Str;
// 引数は文字列の桁数
Str::random(5);
→ 'RYmCr'
Str::random(40);
→ 'vhL6UjOjhVzEWh6cZvtd0a8ErQwZoZSlrfSTWaOb'
ユニークな文字列ではありません(理論的に重複する可能性がある)
引数で文字列の桁数を可変できるので、数値が大きければ大きいほど事実上ユニークに近い状況にはできそうです
ちなみにLaravelでinput type fileの画像をサーバ側で保存するときに使うstoreメソッドは、ランダムなファイル名が付与されますが内部的にはStr::random(40)を実行しています
uuid
use Illuminate\Support\Str;
Str::uuid();
→ '51d3d5e0-a7fa-4a96-aef6-3166bf456bc0'
ユニークなIDを生成する時はこれを使う
出力される文字列の桁数は変えられない
桁数を指定してランダムな数値を出力
// ランダムな6桁の数値を出力
str_pad(random_int(0,999999),6,0, STR_PAD_LEFT);
→ 278960
ユニークではありません
数値から複合化できるハッシュ値を生成
use Vinkla\Hashids\Facades\Hashids;
// 引数に数値を指定
Hashids::encode(1);
→ 'erjqv9lv28wn'
// 複合化(配列で値が返ってくることに注意)
Hashids::decode('erjqv9lv28wn')[0];
→ 1
数値からユニークなハッシュ値を生成できます
ユーザに見せたく無いURLのidなどを変換するときによく使います
もちろん複合化できます
ディスカッション
コメント一覧
まだ、コメントがありません
よくLoadingされてるDocs
新たにPostされたDocs
: ウェブサービス
メルカリやラクマの商品がいつ出品されたのかを調べる裏技
メルカリやラクマなどで商品を探してると、ときどき、 「この商品はいつ出品されたも ...: 仕事環境
15年前のエアコンに洗浄スプレーしたら想像以上にキレイになった
うちのエアコンは新品で購入してからすでに15年が経過しています にもかかわらず、 ...: Laravel
一定時間で消えるフラッシュメッセージを簡単に実装[Laravel8]
以前、手軽にフラッシュメッセージが実装できるnotieを紹介しました 今回は、そ ...: Laravel
ランダムな文字列やユニークなIDをLaravelで生成
random use Illuminate\Support\Str; // 引数 ...: スマホ
4,837円あげるって言うからOCNモバイルOneにLinksmateから乗り換えたんですよ
これまでは僕はスマホの通信会社に、MVNOのLinksmateを使ってきました ...HashMap
created_by
はやぴ
Web/アプリ開発エンジニア
Sierにてお堅いB向けのソフトウェア開発を経て、現在はC向けのWebやアプリを中心に開発しています。
Utilities