2016-11-25 7 views
1

Je suis débutant de Laravel 5.3. Ce que je veux, c'est utiliser une table personnalisée en tant que table auth à la place de la table utilisateur. Parce que la table utilisateur doit être utilisée à d'autres fins. Comment puis-je modifier config/auth.php ou autre chose? S'il vous plaît aidez-moi!Comment utiliser une table personnalisée en tant que table auth à la place de la table utilisateur?

fichier

auth.php

<?php 

return [ 

    /* 
    |-------------------------------------------------------------------------- 
    | Authentication Defaults 
    |-------------------------------------------------------------------------- 
    | 
    | This option controls the default authentication "guard" and password 
    | reset options for your application. You may change these defaults 
    | as required, but they're a perfect start for most applications. 
    | 
    */ 

    'defaults' => [ 
     'guard' => 'web', 
     'passwords' => 'users', 
    ], 

    /* 
    |-------------------------------------------------------------------------- 
    | Authentication Guards 
    |-------------------------------------------------------------------------- 
    | 
    | Next, you may define every authentication guard for your application. 
    | Of course, a great default configuration has been defined for you 
    | here which uses session storage and the Eloquent user provider. 
    | 
    | All authentication drivers have a user provider. This defines how the 
    | users are actually retrieved out of your database or other storage 
    | mechanisms used by this application to persist your user's data. 
    | 
    | Supported: "session", "token" 
    | 
    */ 

    'guards' => [ 
     'web' => [ 
      'driver' => 'session', 
      'provider' => 'users', 
     ], 

     'api' => [ 
      'driver' => 'token', 
      'provider' => 'users', 
     ], 
    ], 

    /* 
    |-------------------------------------------------------------------------- 
    | User Providers 
    |-------------------------------------------------------------------------- 
    | 
    | All authentication drivers have a user provider. This defines how the 
    | users are actually retrieved out of your database or other storage 
    | mechanisms used by this application to persist your user's data. 
    | 
    | If you have multiple user tables or models you may configure multiple 
    | sources which represent each model/table. These sources may then 
    | be assigned to any extra authentication guards you have defined. 
    | 
    | Supported: "database", "eloquent" 
    | 
    */ 

    'providers' => [ 
     'users' => [ 
      'driver' => 'eloquent', 
      'model' => App\Admin::class, 
     ], 

     // 'users' => [ 
     //  'driver' => 'database', 
     //  'table' => 'users', 
     // ], 
    ], 

    /* 
    |-------------------------------------------------------------------------- 
    | Resetting Passwords 
    |-------------------------------------------------------------------------- 
    | 
    | You may specify multiple password reset configurations if you have more 
    | than one user table or model in the application and you want to have 
    | separate password reset settings based on the specific user types. 
    | 
    | The expire time is the number of minutes that the reset token should be 
    | considered valid. This security feature keeps tokens short-lived so 
    | they have less time to be guessed. You may change this as needed. 
    | 
    */ 

    'passwords' => [ 
     'users' => [ 
      'provider' => 'users', 
      'table' => 'password_resets', 
      'expire' => 60, 
     ], 
    ], 

]; 
fichier

admin.php

<?php 

namespace App; 

use Illuminate\Notifications\Notifiable; 
use Illuminate\Foundation\Auth\Admin as Authenticatable; 

class Admin extends Authenticatable 
{ 
    use Notifiable; 

    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $fillable = [ 
     'name', 'email', 'password', 
    ]; 

    /** 
    * The attributes that should be hidden for arrays. 
    * 
    * @var array 
    */ 
    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 
} 

Répondre

0

Dans votre auth.php changement providers.users.model à votre classe personnalisée.

Comme:

'providers' => [ 
    'users' => [ 
     'driver' => 'eloquent', 
     'model' => App\NewUser::class, 
    ], 

Docs

Mise à jour

Dans votre changement de fichier Admin.php

use Illuminate\Foundation\Auth\Admin as Authenticatable; 

à

use Illuminate\Foundation\Auth\User as Authenticatable; 
+0

Désolé, cela ne fonctionne pas avec l'erreur "Classe 'Illuminate \ Foundation \ Auth \ Admin' non trouvé" –

+0

Votre nom de table personnalisé est 'admin'? Si oui, pouvez-vous afficher votre fichier 'auth.php' et' Admin.php' mis à jour dans votre question. –

+0

oui Je viens de mettre à jour ma question –