// Get the last order id
$lastorderId = Order::orderBy('id', 'desc')->first()->order_no;
// Get last 3 digits of last order id
$lastIncreament = substr($lastorderId, -3);
// Make a new order id with appending last increment + 1
$newOrderId = 'TXT' . date('Ymd') . str_pad($lastIncreament + 1, 3, 0, STR_PAD_LEFT)
但是,这将使您拥有最多999个号码。您每天可以有001-999个订单,因此您每天最多可以有999个订单,一天的增量不超过3位数。
要简化:
可以使用表的自动递增主键并向其添加前导零。
$orderStmt = DB::select("SHOW TABLE STATUS LIKE 'orders'");
$nextPrimaryKeyId = $orderStmt[0]->Auto_increment;
Now you can add leading zeros :
$nextPrimaryKeyId = str_pad($nextPrimaryKeyId, 6, 0);
// Above will make increment id 23 as 000023
然后在新订单中使用。
或…你可以用uuid
package
完成同样的任务。