Laravel форма регистрации - PullRequest
0 голосов
/ 06 мая 2020

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

SQLSTATE [HY000]: Общая ошибка: 1364 Поле «lastname» не имеет значения по умолчанию (SQL: вставить в users (name, email, password, updated_at, created_at) значения (test, test@test.com, $ 2y $ 10 $ lbM5vyBZgu8jjQ5z9jc9F.bhZHXAEeEOyIMno.Onh59 // iDDSTNnu, 06.05.2020 09:26:25, 2020-05-06 09:26:25))

Это код поля фамилии:

<div class="form-group row">
                            <label for="lastname" class="col-md-4 col-form-label text-md-right">{{ __('Last name') }}</label>

                            <div class="col-md-6">
                                <input id="lastname" type="text" class="form-control @error('lastname') is-invalid @enderror" name="lastname" value="{{ old('lastname') }}" required autocomplete="lastname" autofocus>

                                @error('LastName')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

А это код моего RegisterContoller:

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'lastname' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ]);
}

/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return \App\User
 */
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'lastname' => $data['lastname'],
    ]);
}

1 Ответ

2 голосов
/ 06 мая 2020

Поскольку lastname не является значением по умолчанию для модели User, вы должны добавить его как заполняемое свойство.

class User extends Authenticatable
{

...
protected $fillable = [
   'name', 'lastname', 'email', 'password',
];

...

}

Вы также должны установить поле как nullable() при миграции, если фамилия не обязательна.

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