2014-10-01 1 views
6

Ich habe in cartalyst/Sentinel gezogen und ich habe die Migrationen laufen erforderlich, um die Tabellen zu erzeugenLaravel Cartalyst Sentinel - einen Benutzernamen Spalte Benutzer-Tabelle hinzufügen (Was ist der richtige Weg)

php artisan migrate --package=cartalyst/sentinel 

Ich bemerke dass diese die Spalten in der Tabelle users

  1. id
  2. E-Mail
  3. Passwort
  4. Berechtigungen
  5. last_login
  6. first_name
  7. last_name
  8. created_at
  9. updated_at

Ich möchte Benutzernamen nach der E-Mail hinzuzufügen. Also habe ich eine Migrationsdatei erstellt, die das tut.

//add a column username after email in the users table 
$table->string('username')->after('email')->unique(); 

Jetzt, als ich Sentinel verwenden ::

$credentials = Input::all(); 
$user = Sentinel::register($credentials); 

Der Benutzername nicht registriert in der Tabelle gerettet werden. Also habe ich es geschafft, um es ausfüllbare zu erhalten und bearbeite Verkäufer/cartalyst/sentinel/src/Users/EloquentUser.php

protected $fillable = [ 
    'email', 
    'username', /* i added this */ 
    'password', 
    'last_name', 
    'first_name', 
    'permissions', 
]; 

Jetzt das funktioniert, wird der Benutzername in der Tabelle gespeichert. Aber im frage mich, ob das, was ich mache, richtig ist? Sollten wir nicht die Dateien im Paketordner berühren. Wie lösen wir das?

Antwort

12

Fast. Sie haben eine eigenen Benutzer cla erstellen, erstreckt 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', 
    ]; 

} 

Config Veröffentlichen Sentinel:

php artisan config:publish cartalyst/sentinel 

Und in der Konfigurationsdatei, das Benutzermodell auf eigene Faust:

'users' => [ 

    'model' => 'Your\Namespace\User', 

], 
+0

Danke Antonio :) – arkhamDev

+0

Funktioniert die Authentifizierung mit Sentinel :: authenticate (['Benutzername' => 'Benutzer', 'Passwort' => 'Passwort'])? Ich weiß, dass es ein Array mit "E-Mail" und "Passwort" standardmäßig erfordert. – Artisan72

3

In Laravel 5.2 müssen Sie nach dem Ausführen von @Antonio-Schritten
php artisan config:cache anstelle vonausführen 210

Verwandte Themen