Я загрузил 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 :: зарегистрироваться
$credentials = Input::all();
$user = Sentinel::register($credentials);
Имя пользователя не сохраняется в таблице. Так что мне удалось заполучить его, отредактировав поставщика / cartalyst / дозорные / 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