Как записать текст в одну колонку базы данных для каждого нового пользователя при регистрации в Laravel 5.2?

Я использую функцию аутентификации Laravel 5.2, и регистрация работает нормально.

Теперь мне нужно записать строку в специальный столбец в таблице пользователей во время регистрации. Это не значение из ввода HTML-формы. Это статический текст, описывающий роль пользователя (участник). Все регистрирующиеся пользователи должны получить значение «участник» в столбце user_role. Я попытался добиться этого, добавив эту строку в AuthController.php:

'user_role' => 'contributor',

Вся функция добавления значений в базу данных выглядит так:

/**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    protected function create(array $data)
    {
        return User::create([
            'first_name' => $data['first_name'],
            'last_name' => $data['last_name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            'user_role' => 'contributor',
        ]);
    }

Когда я пытаюсь зарегистрировать новую учетную запись, добавляется все, кроме 'user_role' => 'contributor',.
Как правильно записать значение "участник" для каждого нового пользователя в столбец user_role?
Это не работает, потому что эта функция имеет только массив $data?


person encrypted21    schedule 25.08.2016    source источник
comment
comment
Эта проблема полностью отличается от той, которую вы предоставили. Это из другой части Laravel.   -  person encrypted21    schedule 25.08.2016


Ответы (1)


Вы добавили user_role в массив $fillable в пользовательской модели?

Если нет, то вам нужно добавить его

Пример

protected $fillable = ['name', 'email', 'password', 'user_role'];
person Dinh Phong    schedule 25.08.2016