ark*_*Dev 7 php acl laravel cartalyst-sentinel
我已经进入了cartalyst/sentinel,并且我已经运行了生成表所需的迁移
php artisan migrate --package=cartalyst/sentinel
Run Code Online (Sandbox Code Playgroud)
我注意到这些是users表中可用的列
我想在电子邮件后添加用户名.所以我创建了一个迁移文件.
//add a column username after email in the users table
$table->string('username')->after('email')->unique();
Run Code Online (Sandbox Code Playgroud)
现在我使用Sentinel :: register
$credentials = Input::all();
$user = Sentinel::register($credentials);
Run Code Online (Sandbox Code Playgroud)
用户名不会保存在表格中.所以我设法通过编辑vendor/cartalyst/sentinel/src/Users/EloquentUser.php来获取它.
protected $fillable = [
'email',
'username', /* i added this */
'password',
'last_name',
'first_name',
'permissions',
];
Run Code Online (Sandbox Code Playgroud)
现在这个工作,用户名存储在表中.但我想知道我在做什么是对的?我们不应该触摸packages文件夹中的文件.我们如何解决这个问题?
Ant*_*iro 12
几乎.您必须创建自己的用户clas,扩展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',
];
}
Run Code Online (Sandbox Code Playgroud)
发布Sentinel的配置:
php artisan config:publish cartalyst/sentinel
Run Code Online (Sandbox Code Playgroud)
在配置文件中,将用户模型设置为您自己的模型:
'users' => [
'model' => 'Your\Namespace\User',
],
Run Code Online (Sandbox Code Playgroud)