diff --git a/src/Model/Concerns/HasUuids.php b/src/Model/Concerns/HasUuids.php index 5d27dbe..ba1c16c 100644 --- a/src/Model/Concerns/HasUuids.php +++ b/src/Model/Concerns/HasUuids.php @@ -63,4 +63,27 @@ public function getIncrementing() return $this->incrementing; } + + /** + * Initialize the model with unique identifiers. + * + * @param array $columns + * @return void + */ + protected function initialize(array $columns): void + { + foreach ($columns as $column) { + if (in_array($column, $this->uniqueIds()) && ! $this->{$column}) { + $this->{$column} = $this->newUniqueId(); + } + } + } + + public function save(array $options = []): bool + { + $this->initialize($this->uniqueIds()); + + return parent::save($options); + } } +