我已经进入了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);
用户名未保存在表格中。所以我设法通过编辑 vendor / cartalyst / sentinel / src / Users / EloquentUser.php
来获取它protected $fillable = [
'email',
'username', /* i added this */
'password',
'last_name',
'first_name',
'permissions',
];
现在这个工作,用户名存储在表中。但我想知道我在做什么是对的?我们不应该触摸packages文件夹中的文件。我们如何解决这个问题?
答案 0 :(得分:12)
几乎。您必须创建自己的用户条款,扩展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',
],
答案 1 :(得分:3)
在Laravel 5.2中,执行@Antonio步骤后,您需要运行
php artisan config:cache
代替php artisan config:publish cartalyst/sentinel