Bonjour, j'ai un petit problème de condition assez simple je pense, pourtant je ne trouve pas la solution.
Je veux modifier ma navbar selon le type d'utilisateur.
J'ai donc créé une méthode

public function userGroup() {
$req = $this->db->prepare('SELECT id_userstype FROM users WHERE id_userstype = :id_userstype ');
$req->bindValue(':id_userstype', $this->id_userstype, PDO::PARAM_INT);
$req->execute();
return $req->fetch(PDO::FETCH_OBJ);
}
Dans mon controller j'ai ensuite instancié mon objet, puis
$userGroup = $users->userGroup();
Dans ma vue, j'ai mis if ($userGroups = 2){ avec ce que je voulais mettre dedans, suivit d'un else.
Seulement ça m'affiche uniquement ce qu'il y a dans le if, mais peu importe l'id de userGroup. J'ai lancé le débuggueur et ça ne me le récupère pas, il est égal à 0.
Quelqu'un peut-il m'aider svp ?

2 réponses


Salut,

Je ne sais pas si c'est un faute de frappe ou juste un exemple mais pour tester un égalité il faut utiliser == ( ou === pour tester en plus le type), sur ton exemple tu as mis que un seul = ce qui rend la condition toujours vrai (tu assignes la valeur 2 à userGroups).

Visiblement tu as aussi un autre problème pour récuperer la valeur de id_userstype, hésites pas à mettre un peu plus de code pour qu'on puisse t'aider à débugger !

Bonjour.
Pour ma part je ne comprend pas l'intérêt de retourner un enregistrement avec comme seul nom de colonne de la table, la condition sur la colonne qu'on lui passe.
C'est comme si tu disais, je connais la valeur de cette colonne de la table, mais fais une requête SQL pour me la retourner.
Donc à mon avis tu dois déjà te tromper sur le nom de la colonne de la table dont tu veux récupérer sa valeur, de plus qu'en retour de ta méthode, tu ne récupère pas que la valeur de la colonne de l'enregistrement récupéré, mais l'enregistrement lui même, il te faut donc faire ta condition dans ta vue sur la propriété qui correspond au nom de la colonne et non juste sur la variable $userGroup, sauf si tu modifies le retour de la méthode et que tu renvois directement la valeur de la propriété correspondante.