9

我已经引入了 cartalyst/sentinel,并且已经运行了生成表所需的迁移

php artisan migrate --package=cartalyst/sentinel

我注意到这些是用户表中可用的列

  1. ID
  2. 电子邮件
  3. 密码
  4. 权限
  5. 上次登录
  6. created_at
  7. 更新时间

我想在电子邮件后添加用户名。所以我创建了一个迁移文件。

//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',
];

现在这有效,用户名存储在表中。但我想知道我所做的是否正确?我们是否应该不接触包文件夹中的文件。我们如何解决这个问题?

4

1 回答 1

15

几乎。您必须创建自己的用户类,扩展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',

],
于 2014-10-01T03:04:51.797 回答