Automatically fill the identifier
of your model by adding the HasIdentifier
trait.
Require the package
composer require brainstud/has-identifier
Add the HasIdentifier
trait to your model.
/**
* @property string $identifier
*/
class Item extends Model
{
use HasIdentifier;
protected $fillable = [
'identifier'
];
}
The identifier will be filled on creation.
$model = Item::create();
echo $model->identifier;
The trait will use the identifier
property of your model to generate an identifier to.
You can overwrite the property the trait uses by setting the identifierAttribute
on your model.
/**
* @property string $identifier
*/
class Item extends Model
{
use HasIdentifier;
protected string $identifierAttribute = 'uuid';
protected $fillable = [
'uuid'
];
}
There are different ways to get the model by identifier.
// Find method
$model = Item::findByIdentifier($uuid);
$model = Item::findOrFailByIdentifier($uuid);
// Scope
$model = Item::identifiedBy($uuid)->first();
You can run the tests with
composer test
has-identifier is open-sourced software licensed under the MIT License