2016-10-26 1 views
-1

J'ai essayé d'implémenter l'authentification de base de rôle. L'authentification est effectuée correctement. Si l'utilisateur est administrateur seulement alors il peut enregistrer un nouvel employé. Mais le problème est que les données mises dans le formulaire d'inscription ne sont pas enregistrées dans la base de données. Les redirections de route sont correctes mais les données ne sont pas sauvegardées. J'utilise le système d'authentification intégré de laravel 5.2.Les données utilisateur enregistrées ne sont pas enregistrées dans la base de données. Laravel 5.2

Route:: get('/register',['middleware'=> 'roles', function(){ 

    return view('auth.register'); 
}]); 

middleware:

public function handle($request, Closure $next) 
    { 
     if ($request->user()==null) 
     { 
      return redirect('/login'); 

     } 
     if (!$request->user()->isAdmin()){ 
      return redirect('books'); 
     } 

     return $next($request); 

    } 
} 

Modèle utilisateur:

public function roles(){ 
     return $this->belongsToMany('App\Role','roles_users', 'user_id', 'role_id'); 
    } 
    public function isAdmin() { 
     return in_array(2, $this->roles()->pluck('role_id')->all()); 
    } 

si je retire le middleware puis les données enregistrées sont enregistrées correctement.

Répondre

0

J'ai résolu mon problème. Dans AuthController intégré, il existe un constructeur avec un middleware prédéfini. Supprimé. Mon code fonctionne comme je le voulais.