2014-10-01 13 views
6

mam pociągnął w cartalyst/Sentinel i Zabrakło mi migracje wymagane generować tabelelaravel Cartalyst Sentinel - dodanie kolumny do tabeli użytkowników nazwę użytkownika (Co to jest właściwa droga)

php artisan migrate --package=cartalyst/sentinel 

Zauważam że są to kolumny dostępne w tabeli użytkowników

  1. id
  2. email
  3. hasło
  4. uprawnienia
  5. last_login
  6. FIRST_NAME
  7. LAST_NAME
  8. created_at
  9. updated_at

Chciałbym dodać użytkownika po wiadomości. Więc stworzyłem plik migracji, który to robi.

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

Teraz gdy używam Sentinel :: zarejestrować

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

nazwa użytkownika nie zostanie zapisany w tabeli. Więc udało mi się dostać to napełniane edytując vendor/cartalyst/Sentinel/src/Users/EloquentUser.php

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

Teraz to działa, nazwa użytkownika zostanie zapisany w tabeli. Ale im zastanawiasz się, czy to co robię jest słuszne? Nie należy dotykać plików w folderze paczek. Jak to rozwiązujemy?

Odpowiedz

12

Prawie. Trzeba tworzyć własne clas użytkowników, rozszerzając 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', 
    ]; 

} 

Publish Sentinel config:

php artisan config:publish cartalyst/sentinel 

A w pliku konfiguracyjnym należy ustawić modelu użytkownika do własnych:

'users' => [ 

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

], 
+0

Dziękuję Antonio :) – arkhamDev

+0

Czy uwierzytelnianie działa z Sentinel :: authenticate (['username' => 'user', 'password' => 'password'])? Wiem, że to wymaga domyślnie tablicy z "emailem" i "hasłem". – Artisan72

3

W Laravel 5.2, po wykonaniu kroków @Antonio, musisz uruchomić php artisan config:cache zamiast php artisan config:publish cartalyst/sentinel