Поле UUID не обновляется при создании пользователя - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь назначить UUID, который является просто случайно сгенерированной строкой, пользователю при регистрации. Я добавил его в свою базу данных как простой $table->string('uuid')->nullable(); и в RegisterController.php Я пытаюсь добавить его при регистрации, например, так:

return User::create([
    'name' => $data['name'],
    'email' => $data['email'],
    'password' => Hash::make($data['password']),
    'uuid' => rand(1, 13000)
]);

Проблема, с которой я столкнулся, заключается в том, что столбец uuid всегда равно нулю, оно никогда не добавляется.

Я подтвердил, что поле добавляется в мою БД, оно просто не обновляется при создании пользователя.

Ответы [ 2 ]

1 голос
/ 12 марта 2020
Функция

rand не должна использоваться для генерации uuid.

Вместо этого в laravel 5.6 + есть помощник для генерации универсальных уникальных идентификаторов (UUID).

use Illuminate\Support\Str;

return (string) Str::uuid();

Laravel API -> Str -> uuid

0 голосов
/ 12 марта 2020

Скорее всего, вам нужно добавить 'uuid' к свойству $fillable в вашей модели пользователя:

<?php

namespace App;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password', 'uuid',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...