Данные сохраняются без идентификаторов?

Немного предыстории. Я пытаюсь зарегистрировать нового пользователя, создать для него профиль по умолчанию и затем войти в него. Таблица пользователей как current_profile_id колонка.

Я использую UUID для этого, там нет увеличения идентификаторов, как все. Кажется, все мои миграции настроены правильно, но что-то идет не так, когда отношения сохраняются. В конце процесса мой недавно созданный профиль не имеет идентификатора.

UuidTrait.php:

<?php

namespace MyNamespace\Traits;

use Ramsey\Uuid\Uuid;
use Illuminate\Database\Eloquent\ModelNotFoundException;

/**
* Trait UuidTrait
* @package MyNamspace\Traits
*/
trait UuidTrait
{

/**
* Boot function from laravel.
*/
protected static function boot()
{
parent::boot();

static::creating(function ($model) {
$model->{$model->getKeyName()} = Uuid::uuid4()->toString();
});
}

}

User.php (показаны только отношения)

/**
* Has many profiles
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function profiles()
{
return $this->hasMany('MyNamespace\Models\Profile');
}

/**
* Current profile
*
* @return \Illuminate\Database\Eloquent\Relations\belongsTo
*/
public function currentProfile()
{
return $this->hasOne('MyNamespace\Models\Profile', 'id', 'current_profile_id');
}

AuthController.php (register () создание всего этого)

$user = $this->user->create($request->all());
$profile = $user->profiles()->create(['username' => $request->username]);
$user->currentProfile()->save($profile);

Мой пользователь создается с идентификатором, но по какой-то причине мой профиль создается без. У меня два подозрения. Или это моя черта, которую я создаю из отношений, или это отношения, какие-нибудь идеи?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]