AntonioG's avatar

Auto generate Order Nbr in [Laravel Nova]

I use Laravel Nova , In my MySQL database I have a Table called Order, and a column called order_nbr I would appreciate your kind assistance to understand how to automatically Generate the Order number during Creation to obtain a Number like the following: C-00001 ...which becomes whenever a new Order is created: C-00002, C-00003....

Thank you!

0 likes
3 replies
AntonioG's avatar

@Snapey

Thank you for your kind reply, here's how i solved it :

Solution:

Nova Model :

public static function boot() { parent::boot();

static::creating(function ($model) {
    $prefix = 'ORD-';
    $lastOrder = static::max('order_number');

    if (!$lastOrder) {
        $model->order_number = $prefix . '00001';
    } else {
        $lastNumber = intval(substr($lastOrder, strlen($prefix)));
        $newNumber = str_pad($lastNumber + 1, 5, '0', STR_PAD_LEFT);
        $model->order_number = $prefix . $newNumber;
    }
});

} Nova Ressource:

Number::make('Order Number')
    ->exceptOnForms()
    ->sortable(),

Please or to participate in this conversation.