2017-10-05 13 views
0

Laravel 5.5
Dernières Sentinel (pour l'authentification)
machine virtuelle Homestead (sur ma machine locale)
l'application Laravel fonctionne sur Homestead local, mais pas sur Heroku - erreur Sentinel

Fondamentalement, j'ai une application qui fonctionne parfaitement sur la machine Homestead locale. J'ai créé une nouvelle application sur Heroku, tout fonctionne bien sauf se connecter et s'inscrire. J'ai la configuration de la base de données ClearDB, les migrations fonctionnent parfaitement, donc la connexion à la base de données est bonne. Mais quand j'essaie de me connecter ou de m'inscrire, j'obtiens une erreur. Pour une raison quelconque, un username n'est pas transmis à la base de données. Toute autre valeur est transmise. (J'ai changé EloquentUser, donc je peux me connecter avec Username)

J'utilise le code Sentinel::registerAndActivate($request->all()); pour l'enregistrement. Tous les noms du formulaire correspondent aux noms dans db. Comme je l'ai dit, cela fonctionne sur la machine locale.

Lorsque je dd($request->all(), je peux voir le nom d'utilisateur est passé.

J'ai ajouté le nom d'utilisateur dans $fillable tableau et dans EloquentUser pour Sentinel.

Des idées pourquoi ne fonctionne pas?

Répondre

0

Stupide chose pour être honnête. Vous devez créer votre propre modèle qui étend le modèle d'utilisateur Sentinel d'origine car lorsque vous modifiez la méthode de connexion, vous devez modifier un fichier qui se trouve dans le dossier vendor, qui est remplacé chaque fois que vous déployez quelque chose sur Heroku.

Créez simplement votre fichier de modèle dans le dossier App et étendez le modèle EloquentUser du dossier du fournisseur. Ajouter $fillable et $protected tableaux. Changez le fichier cartalyst.sentinel.php dans les paramètres, donc 'model' est maintenant le vôtre, pas EloquentUser.