Laravel 唯一的随机字符串数
Laravel unique random string number
我想用数字制作一个无限字符串。在这里执行此操作的最佳方法是什么,例如mt_rand(1000000, 9000000)
但如果在 1000000
和 9000000
之间一切都被占用,则没有更多的数字。使用的数字越多,出现错误的频率就越高,if else 必须一次又一次地通过整个 table。
public function creating(Ticket $ticket)
{
$randomNumber = mt_rand(1000000, 9000000);
if(!Ticket::where('number', '=', $randomNumber)->exists()) {
$ticket->fill(['number' => $randomNumber]);
} else {
$this->creating($ticket);
}
}
最好的方法是什么?我希望它是一个唯一的数字字符串。没有尽头。
为保证编号唯一,您应该改用 created
。每当创建工单时,您都可以在 id 前添加一些随机数以生成唯一编号。试试这个
public function created(Ticket $ticket) {
$ticket->number = rand(1000, 9999).str_pad($ticket->id, 3, STR_PAD_LEFT);
$ticket->save();
}
我想用数字制作一个无限字符串。在这里执行此操作的最佳方法是什么,例如mt_rand(1000000, 9000000)
但如果在 1000000
和 9000000
之间一切都被占用,则没有更多的数字。使用的数字越多,出现错误的频率就越高,if else 必须一次又一次地通过整个 table。
public function creating(Ticket $ticket)
{
$randomNumber = mt_rand(1000000, 9000000);
if(!Ticket::where('number', '=', $randomNumber)->exists()) {
$ticket->fill(['number' => $randomNumber]);
} else {
$this->creating($ticket);
}
}
最好的方法是什么?我希望它是一个唯一的数字字符串。没有尽头。
为保证编号唯一,您应该改用 created
。每当创建工单时,您都可以在 id 前添加一些随机数以生成唯一编号。试试这个
public function created(Ticket $ticket) {
$ticket->number = rand(1000, 9999).str_pad($ticket->id, 3, STR_PAD_LEFT);
$ticket->save();
}