mindtwo/laravel-auto-create-uuid
Laravel Auto Create UUID
Automatically populate a UUID column on Eloquent models when they are created or replicated. Drop the trait onto any model and the rest works without configuration.
Installation
Install the package via Composer:
composer require mindtwo/laravel-auto-create-uuid
Requirements
- PHP 8.2+
- Laravel 10, 11, 12, or 13
Usage
Add the trait to a model
use Illuminate\Database\Eloquent\Model;
use mindtwo\LaravelAutoCreateUuid\AutoCreateUuid;
class Example extends Model
{
use AutoCreateUuid;
}
Add a UUID column to the migration
$table->uuid('uuid')->unique();
The trait listens to the creating and replicating model events and fills
the configured UUID column with a new UUID v4 whenever the column is empty or
holds an invalid UUID.
Customize the UUID column
The default column name is uuid. To use a different column, either define a
$uuid_column property:
class Example extends Model
{
use AutoCreateUuid;
protected string $uuid_column = 'identifier';
}
or override the getUuidColumn() method:
class Example extends Model
{
use AutoCreateUuid;
public function getUuidColumn(): string
{
return 'identifier';
}
}
Replicating models
The trait overrides Model::replicate() to ensure the UUID column is excluded
from the cloned attributes, so the replica receives a fresh UUID via the
replicating event.
Testing
composer test
Static analysis
composer analyse
Code style
composer format
Changelog
Please see CHANGELOG for a list of recent changes.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email info@mindtwo.de instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
Related Packages
Create non-incrementing Laravel models whose primary key is a UUID
This package allows you to easily work with UUIDs in your Laravel models.