Automatically fill the identifier of your model by adding the HasIdentifier trait.
Require the package
composer require brainstud/has-identifierAdd 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 testhas-identifier is open-sourced software licensed under the MIT License