保存的数据没有ID?

时间:2016-04-03 21:54:08

标签: php laravel eloquent entity-relationship laravel-5.2

一点背景。我正在尝试注册新用户,为他们创建默认配置文件,然后将其登录。用户表作为current_profile_id列。

我正在使用UUID,因为没有递增的ID。我的迁移似乎都已正确设置,但在保存关系时出现问题。在该过程结束时,我新创建的配置文件没有ID。

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(注册()创建全部)

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

我的用户是使用ID创建的,但出于某种原因,我的个人资料正在创建中。我有两个怀疑。无论是我的特质,还是我从关系或其关系,任何想法创造的?

0 个答案:

没有答案