Laravel Cartalyst Sentinel - Добавление столбца имени пользователя в таблицу пользователей (что является правильным способом)

Я загрузил cartalyst/sentinel и запустил миграцию, необходимую для генерации таблиц.

php artisan migrate --package=cartalyst/sentinel

Я заметил, что эти столбцы доступны в таблице пользователей.

  1. Я бы
  2. Эл. адрес
  3. пароль
  4. разрешений
  5. последний Войти
  6. имя
  7. Фамилия
  8. создан в
  9. updated_at

Я хотел бы добавить имя пользователя после электронной почты. Итак, я создал файл миграции, который делает это.

//add a column username after email in the users table
$table->string('username')->after('email')->unique();

Теперь, когда я использую Sentinel:: зарегистрироваться

$credentials = Input::all();
$user = Sentinel::register($credentials);

Имя пользователя не сохраняется в таблице. Так что мне удалось заполучить его, отредактировав vendor/cartalyst/sentinel/src/Users/EloquentUser.php

protected $fillable = [
    'email',
    'username', /* i added this */
    'password',
    'last_name',
    'first_name',
    'permissions',
];

Теперь это работает, имя пользователя сохраняется в таблице. Но мне интересно, правильно ли то, что я делаю? Если мы не трогать файлы в папке пакетов. Как мы решаем это?

2 ответа

Решение

Почти. Вы должны создать свои собственные классы пользователей, расширяя vendor/cartalyst/sentinel/src/Users/EloquentUser.php:

use Cartalyst\Sentinel\Users\EloquentUser as CartalystUser;

class User extends CartalystUser {

    protected $fillable = [
        'email',
        'username', /* i added this */
        'password',
        'last_name',
        'first_name',
        'permissions',
    ];

}

Опубликовать конфигурацию Sentinel:

php artisan config:publish cartalyst/sentinel

И в файле конфигурации установите пользовательскую модель на свою:

'users' => [

    'model' => 'Your\Namespace\User',

],

В Laravel 5.2 после выполнения шагов @Antonio вам нужно запустить
php artisan config:cache вместо php artisan config:publish cartalyst/sentinel

Другие вопросы по тегам