Tutoriel Vidéo CakePHP : Système de Tags, HasAndBelongsToMany

Dans ce tutoriel vous découvrirez comment utiliser la relation Has And Belongs To Many (HABTM) pour créer un système de tags pour vos contenus. 


Télécharger la vidéo
(Réservé aux premiums)

Télécharger les sources
(Réservé aux premiums)


Après avoir appris sur Internet quoi de plus normal que de partager à son tour ? Passionné par le web depuis un peu plus de 5 ans maintenant j'aime partager mes compétences et mes découvertes avec les personnes qui ont cette même passion pour le web : Vous.

Vous aimerez aussi

Créer un système d'abonnement

Créer un système d'abonnement
1h1

Dans ce tutoriel vidéo vous découvrirez comment mettre en place un...

Les View Blocks

Les View Blocks
10m

Dans ce tutoriel vidéo je vous propose d'en découvrir plus sur une des...

13 commentaires
Ajouter un commentaire

Antho Il y a 16 jours Répondre

Peut on gerer un système de Favoris avec le HABTM ?

Merci d'avance !

mzied Il y a 3 mois Répondre

merci pour ce tuto

Raito Il y a 5 mois Répondre

se système au niveau ressource donne quoi comparé a une grosse requête a coup de Inner pour les tag ?

sebstein Il y a 5 mois Répondre

Pourquoi ne pas faire plus simple, en recopiant la liste des tags dans le champ texte ?
Ensuite, quand tu sauvegarde, tu supprime au préalable l'ensemble des tags déjà associés au post. C'est plus simple et plus rapide (autant pour l'utilisateur que pour le serveur). En effet, une requête SQL de suppression est plus rapide que plusieurs actions CakePHP de suppression...

sebstein Il y a 5 mois - Répondre

Surtout que, si l'utilisateur a déjà commencé l'édition du post, il devra tout recommencer. on peut évidement éviter cela en envoyant l'ensemble des données dans l'action delTag, mais ça alourdi les transfert et augmente encore la charge serveur. Autre solution, utiliser AJAX pour les actions de suppression, mais c'est un peu gadget.

jjii Il y a 5 mois Répondre

une question qund meme
pourqoi tu publie pas tes tuto sur youtube
mon pc rame trop avec dailymotion

Ciboulette Il y a 5 mois Répondre

Merci pour ce petit tuto , je suis sur les tags en ce moment et j'ai mis http://webspirited.com/tagit/?page=tagit dans mon admin , c'est pas mal cette animation jquery.

dadam Il y a 5 mois Répondre

Salut Graf !
y'a un petit truc qui pourrait t'aider
pour les relations habtm il y a un champs 'with' dans lequel tu peux surcharger le model qui fait la relation ^^ dans ton cas PostTab au lieu par défault PostsTab

zaarkan Il y a 5 mois Répondre

Salut ! Super vidéo !

Cependant graf j'ai une question

Mes users on chacun une liste de Contact.

j'ai donc 2 table, Users & Contact (table de liaison).

Users est de type n a n avec elle même. Chaque Users peu avoir plusieur Users, j'utilise ma table "Contact" comme table de liaison. Maintenant comment utiliser une relation de type HasAndBelongsToMany dans ce cas étant donner que le variable user_id est identique. impossible ? Pour instant j'utilise une relation de type Users HasMany Contact. Et à partir du Contact je recharge le user cible.

Pour instant dans ma table contact j'utilise 3 variable :
Id
Contact => user_id du contact
user_id => user_id du propriétaire de la liste de Contact.



Grafikart Il y a 5 mois

Tu peux utiliser une relation HABTM ou tu précise manuellement les clefs

zaarkan Il y a 5 mois - Répondre

Oki merci pour l'infos

WinuX Il y a 5 mois Répondre

Salut,

Ca ne serait plus simple et moins couteux en ressources que d'enlever la table de liaison?

Pourquoi ne pas simplement modifier la table tags en ajoutant un champs "post_id" que l'on pourra modifier à chaque création de post?
Ou encore modifier la table post pour ajouter un champs "tag_id"?

Il suffira ensuite de séparer les id par un caractère quelconque (ex: "/"), puis explode la chaine pour récupérer les ids.

Certes ça fera moins organisé, mais c'est pas tous les jours qu'on va faire un tour sur phpmyadmin sur un projet concret et finalisé ^^


PS : Merci pour le tuto

Grafikart Il y a 5 mois

Et si tu veux tous les tags d'un post / ou tous les post d'un tag si tu as ton système c'est grillé, tu va devoir faire un LIKE et ça c'est moche pour les perf :D

WinuX Il y a 5 mois

Ah oui, excellente réponse, j'y avais pas pensé.

Merci beaucoup !!

realitix Il y a 5 mois - Répondre

Avec cette méthode, tu crées un attribut multivalué, et donc ta table n'est même pas en 1e forme normal. Il est conseillé d'atteindre la 3e forme normal, donc ne surtout pas faire cette méthode.

iGhost Il y a 5 mois Répondre

Wow!! Merci beaucoup se que je cherchais

DevAddict Il y a 5 mois Répondre

Que de commentaire constructifs... Merci pour ce tutoriel Graf, il tombe à pique comme je t'avais dit héhé, bonne continuation et continu de nous faire des tutos avancés

Mnb Il y a 5 mois Répondre

:)

Valentin Il y a 5 mois Répondre

Preums!

Laisser un commentaire

Si vous avez une question il est conseillé d'utiliser le forum si vous voulez une réponse sûre.