Я не могу найти ссылку на свойство или магическое свойство, которое вы написали, как показано ниже (например, метод getUuidAttribute
)
$model->{$model->uuid} = str_replace('-', '', \Uuid::generate(4)->string);
Итак, я предполагаю, что приведенный выше код будет скомпилирован как
$model->{null} = str_replace('-', '', \Uuid::generate(4)->string);
Полагаю, вы ищете $model->id
с типом столбца базы данных как uuid
.Но, очевидно, вы не можете иметь динамическое имя столбца базы данных, так как оно вообще неверно.Пример динамического столбца, если ваш фрагмент работает правильно
$model->'6b324d55-433c-455a-88b6-feb2ee6c3709' = 'c3bec822-e5ee-4d91-b1a3-f5f552fd004a';
Что-то не так, верно?Было бы лучше, если бы это выглядело так.
$model->id = 'c3bec822-e5ee-4d91-b1a3-f5f552fd004a';
И, конечно же, сделайте так, чтобы ваш последний фрагмент был чем-то вроде следующего:
<?php
namespace App\Traits;
trait Uuids {
// to make model run this 'boot' method, append it with your trait name
protected static function bootUuids() { // <-- bootUuids
// parent::boot();
static::creating(function ($model) {
$model->id = str_replace('-', '', \Uuid::generate(4)->string);
});
}
}