Bonjour,

Je suis novice en Laravel et je crée un petit jeu afin d'aiguiser mes connaissances.

J'ai suivi tout les tutoriels de Grafikart pour le framework et, j'ai voulu jouer avec Auth avec lequel je n'ai aucun soucis.

Maintenant, je souhaiterai ajouter une fonction qui va vérifier si mon joueur à bien crée sa ferme lors de sa connexion qui sera appelé sur les pages nécessitant la création d'une ferme au préalable.

Suites aux conseils de Grafikart, j'ai fait un middleware. Cependant, je suis un peu perdu.
Je sais plus ou moins ce que je veux faire, mais, je peine à les mettres en place :

Si le joueur n'est pas connecté ou s'il possède déjà une ferme, il continue le fonctionnement normal
Sinon, s'il est connecté et qu'il ne possède pas de ferme, on l'envoie sur la page de création.

Mon idée au départ était de faire une condition ainsi

<?php

if (!Auth::check() || Farm::where('user_id', Auth::id())->first()) {
   return $next($request);
   } else {
 redirect(route('farm.create'));
}

Mais, après divers tests et arrachages de cheveux, je m'en remet à vous car Laravel rale sur le fait de faire ma condition et je ne sais pas vraiment comment travailler cette condition.

L'erreur en question :

ErrorException in VerifyCsrfToken.php line 135:
Trying to get property of non-object

Je vous remercie par avance de votre aide.

3 réponses


Onouriis
Réponse acceptée

As-tu essayé de décomposer les éléments de ton if ?
Tu n'as pas l'erreur de Crsf sans ce middleware ?

EDIT : oh, tu as essayé return redirect(route('farm.create'));
EDIT2 : D'ailleurs c'est plutôt return redirect()->route('farm.create'); https://laravel.com/docs/5.2/responses#redirects

Selmac
Auteur

Merci, ta réponse m'a aidé le soucis venait juste du return sur le redirect tout simplement.

cool si le probleme est resolu. N oublie pas de mettre route a l exterieur du redirect aussi.
Bonne chance dans ta decouverte.