Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

En fait ca fait un moment que je cree mon reseau sociale avec php, js, sql ..
Je viens de voir le tuto sur Twig et je veux le rajouter sur mon site.
Mais appenne je commence j'ai un probleme.

Ce que je veux

Je veux que quand les post se charge il verifie si l'utilisateurs les a liker ou nom.
Pour ca je fetch pour chaque post dans la table "like" avec l'id de l'utilisateur et l'id de la publications.

<?php
                        $fetch_likes = $bdd->query("SELECT public_id FROM likes WHERE public_id= '".encrypt($msg['id'], $secure_key)."' AND user_id = '".$_COOKIE['user_id']."' LIMIT 0, 1");
                        while($likes = $fetch_likes->fetch()){
                            $succes = true;
                            $public_id = $likes["public_id"];
                        }               
                    ?>

et apres:

<input  type="checkbox" hidden id="heart<?php echo $msg["id"]  <?php if(isset($succes)): echo "checked"; endif; ?>>

En php tous mon code fonctionne mais je ne sais pas comment faire en twig pusique on ne peux pas utiliser php

Si quelqun pourait m'aider a faire face a ce probleme ca serait sympa!
Merci A+

6 réponses


Hello Yoyo,

Hm, pas évident de te donner une vraie réponse. Il nous faudrait pour ça en savoir un peu plus sur la structure de ton code et comprendre comment tu as organisé tes controllers et vues.

Peut-être que le concept global va t'aider. L'idée n'est pas d'écrire du code php dans twig. Ce n'est pas son rôle. Twig s'occupe de rendre la vue à l'utilisateur. Tu peux bien sûr faire un peu de traitement (cf la doc).

En réalité, tu dois plutôt faire ton traitement du côté controller et envoyer à Twig les variables que tu souhaites afficher.

Je ne sais pas si ça va t'aider. Si tu nous en dis plus, je pense que nous pouvons t'apporter une meilleure réponse.

Mika,

Hello,

Je connais pas beaucoup Twig..., honnetement j'ai essayé je n'ai pas aimé... je préfère de loin Smarty.

Effectivement Mikaelhdx a raison, le template n'est pas un endroit pour faire des requêtes SQL, au pire tu pourrais assigner ton objet de connexion en tant que variable Twig, mais pas sure que cela fonctionne.

La dernière solution sera de récuperer les likes en amont dans le contrôleur... d'ailleurs pourquoi tu ne fait pas une jointure sur la table "likes" au moment de récupérer ton post ??

Yoyo Bu
Auteur

J'aimerais bien vous donnez quelque chose de plus mais je ne sais pas quoi

bonjour

il est tout à fait possible de faire des boucles dans la vue twig

avec par exemple {{ for ... }}

Le mieux est de suivre le super tuto présent sur ce site: https://www.grafikart.fr/tutoriels/twig-832

Je ne connaissais pas du tout avant de le commence et maintenant ça roule. :)

Yoyo Bu
Auteur

Probleme resolu!
J'ai laisser mon php et je l'ai chargé en ajax