Я потянул в cartalyst / sentinel, и я выполнил миграцию, необходимую для создания таблиц
php artisan migrate --package=cartalyst/sentinel
Я замечаю, что это столбцы, доступные в таблице пользователей
Я хочу добавить имя пользователя после письма. Поэтому я создал файл миграции, который делает это.
//add a column username after email in the users table $table->string('username')->after('email')->unique();
Теперь, когда я использую Sentinel :: register
$credentials = Input::all(); $user = Sentinel::register($credentials);
Имя пользователя не сохраняется в таблице. Так что мне удалось получить его заполняемым путем редактирования поставщика / cartalyst / sentinel / src / Users / EloquentUser.php
protected $fillable = [ 'email', 'username', /* i added this */ 'password', 'last_name', 'first_name', 'permissions', ];
Теперь это работает, имя пользователя сохраняется в таблице. Но им интересно, правильно ли я делаю? Если мы не касаемся файлов в папке пакетов. Как мы это решаем?
Почти. Вы должны создать свои собственные пользовательские классы, расширяя 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