Добавление полей в аутентификацию Laravel 5 не вставляется в базу данных

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

Консоль также показывает, что данные формы отправляются правильно.

Я что-то упускаю?


person Community    schedule 08.02.2015    source источник


Ответы (1)


Если вы посмотрите на файл app/Services/Registrar.php, вы найдете там функцию create:

public function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);
}

Вам нужно изменить эту функцию, чтобы включить поля формы. Они будут переданы в массиве $data.

В этом файле также есть функция validator для применения правил проверки к вашим полям.

Кроме того, в файле модели app/User.php есть массив protected $fillable. Вам нужно будет добавить имена ваших настраиваемых полей в этот массив, чтобы их можно было массово назначать.

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

Отредактировано 9 июля 2015 г.

Это применимо к v5.0.1. Структура папок изменилась в будущем. Настройки из файла app/Services/Registrar.php перемещены в app/Http/Controllers/Auth/AuthController.php

person Noman Ur Rehman    schedule 08.02.2015
comment
Ха-ха, я тоже только сейчас это увидел. Ты подтолкнул меня на это. Спасибо! - person ; 08.02.2015
comment
Я не могу найти папку Services внутри app! - person Neel; 09.07.2015
comment
@blackops_programmer Это применимо к v5.0.1. Они изменили структуру папок в будущем. Я думаю, что настройки, найденные в файле app/Services/Registrar.php, были перемещены в app/Http/Controllers/Auth/AuthController.php - person Noman Ur Rehman; 09.07.2015
comment
Да, ты прав. Я только что переместил валидатор и создал методы внутри своего AuthController.php, и это делает свою работу. Я только что узнал об этом из своего вопроса, который я разместил здесь сегодня: stackoverflow.com/questions/31319556/ - person Neel; 09.07.2015