Bonjour à tous,

Je m'excuse de vous déranger. J'aurais deux questions concernant CakePHP.

La première question concerne le tutoriel jour 3 sur le développement d'un site internet avec CakePHP.
Dans ce tutoriel, les pages et des articles utilises la même table MySQL. J'aurais voulu savoir si c'était possible de faire deux tables à part ? Si oui, j'aimerais savoir ce qu'il faut modifié, car je suis un peu perdu.

Ma deuxième question concerne un système que j'aimerais mettre en place par la suite, une boutique.

Je pensais utiliser le tutoriel sur le panier en php. Donc, ce tutoriel est-il valable avec CakePHP ?
En faite, les utilisateurs commanderons des genres de "Packs d'améliorations" qui leurs donneront des avantages sur un jeu vidéo.

Donc, comment mettre en place ce genre de système par rapport à un système d'articles ou de pages ?

Sachant que j'aurais une table contenant les articles disponibles à commander mais sans possibilité de modifier ou d'ajouter.
Une fois la commande d'un article, cela mettra à jour la table du joueur en lui modifiant certaines variables qui auront ensuite un impact dans le jeu.

Donc voilà, j'aurais aimé avoir quelques éclaircies si possible :).

Amicalement,
DexX

8 réponses


Ciloe
Réponse acceptée

1) Pour ne pas prendre 2 tables pour les deux éléments, tu indiques que le model à utiliser par le controller page, c'est le model Page. Tu le crée et tu crée la table associées soit en respectant les règle de Cake soit en lui donnant la table à utiliser avec la variable $uses du model.

2) Le tuto sur la panier peut être "utiliser" (j'endends que tu récupère les idées et tu recode derrière) avec CakePHP. Il suffit alors de créer les controllers, models, et vues qu'il te faut. Bien sur, tu peus ou non utiliser une base de donnée. Par exemple, un utilisateur peut avoir des achats donc tu crée une table users et une table achats avec les models associés.

3) Il y avait pas 3 questions? Non je rigole :).

Si tu as d'autres questions hésite pas!

DexX
Auteur

D'accord merci :).

Mais pour mon système de boutique, est-il possible de faire en sorte qui commande un produit, sa mette à jour une autre table ? J'imagine que oui, mais niveau CakePHP je suis perdu ^^

Oui largement. Tu dis à ton controller d'utiliser deux model, et tu fais appel à eux quand tu as besoin pour faire se que tu veux ^^. $this->loadModel('tonmodel') peut aussi être utiliser dans la fonction seulement où tu en as besoin.

Tout est flexible ^^

DexX
Auteur

D'accord merci.

Lorsque j'arriverais à la création de ce module, je vous tiendrais au courant si j'ai des soucis.

DexX
Auteur

Par exemple, si je veux qu'un lien s'affiche que pour les membres connectés avec un certain level (Par rapport au tutoriel jour 4 de développer un site avec CakePHP). Comment je dois m'y prendre ?

Dans la vue où tu veux placer ce lien, tu peux faire une verif du composant Auth, si il est connecté ou non et tu peux vérifier le role de la personne connectée. Si se role te conviens tu mets ton lien.

En suite tu fais 2 vue sur ce lien, un pour les membres par exemple, et un autre pour l'admin.

Avec la hiérarchie des roles, l'admin pourra aussi avoir accès à la vue du membre.

J'èspère que c'était ça la question ^^

DexX
Auteur

Oui c'était la question.

Donc en faite, dans mon dossier "Elements", j'ai un fichier "menu.ctp".

Mon menu d'accueil avec un lien "Panneau d'administration".

Donc, techniquement, si je veux afficher ce lien qu'aux membres dont le "rôle" est "admin", je dois faire :

<?php $this->Auth-> ??

Amicalement,
DexX.

<?php if($this->Auth->role == admin and !empty($this->Auth){ } ?>

un truc du genre oui. J'ai pas vraiment tester, mais l'idée y est ^^