@Artem0071
Безработный mr. Junior

Как отключить incrementing?

Есть модель User:
class User extends Authenticatable
{
    use UUID;
...
}


И есть trait UUID:
trait UUID
{
    protected static function boot()
    {
        parent::boot();

        static::creating(function (Model $model) {
            $model->setIncrementing(false);
            $model->{$model->getKeyName()} = Str::orderedUuid();
        });
    }
}


Вроде должен добавлять uuid вместо id
При этом если сразу после создания сделать $user->getAttribute('id') выводится именно id
Но если сделать так: $user->fresh()->getAttribute('id') - то получим только первое число от этого самого uuid...

При этом, если убрать $model->setIncrementing(false) и добавить в User class:
public $incrementing = false;

То все заработает как надо.. Но я хочу это все сделать в трейте потому что в каждом классе приходится проделывать эту штуку
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vism
trait UUID
{
    protected static function boot()
    {
        parent::boot();
            $model->setIncrementing(false);

        static::creating(function (Model $model) {
            $model->{$model->getKeyName()} = Str::orderedUuid();
        });
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы