Saut à tous ! Je viens à peine de débuter dans l'univers de CakePHP, et j'ai suivit le tuto pourcréer un blog (deuxième tuto créé sur CakePHP, après l'installation).
Dans le controlleur, on récupère toutes les données stockées dans la BDD en faisant :

$q = $this->Post->get()

ou une fonction dans le genre (je ne fais qu'unepremière approche sans retenir).
Mais cette fonction, comment elle sait qu'il faut récupérer les données dans la table "posts" de la BDD "localhost", etc... ?

Je suis assez troublé !

Merci d'avance pour vos réponses,
Thib92

4 réponses


GOGOPHOTO
Réponse acceptée

En fait tu n'as pas compris le principe du MVC. Le Modèle Vue Controleur est une méthode de programmation qui sépare les couches de logique. Ainsi, tu as d'un côté un modèle qui s'occupe des données, un controleur qui récupère et formate ses données puis une vue qui les affichent.

Maintenant dans la pratique, normalement, en créant ton controleur tu as aussi créé un model du même nom. Et ta table en bdd a aussi le même nom. Donc c'est comme ça que Cake s'y retrouve. Après, localhost tu l'as défini dans ton fichier de database ;)
D'ailleurs tu remarqueras tu donnes le nom du modèle à utiliser dans ta requête !
$this-> <u>Post</u>

Voilà, si t'as d'autres questions n'hésite pas !

(Les autres, si mon explication sur le MVC est incorrecte/imprécise, n'hésitez pas à me corriger !!!)

A+

thib92
Auteur

Ah d'accord, c'est donc parceque la table a le même nom !
Merci, j'ai enfin compris !
Pour le principe de MVC, je e avais déjà ;)

Merci encore !

Salut, sinon y'a un super tuto qui explique le fonctionnement d'un MVC : http://www.grafikart.fr/tutoriels/php/mvc-model-vue-controller-php-132

Tu peux aussi avoir des tables de noms différents mais à ce moment là il faudra que tu dises à ton modèle, les données sont à prendre dans telle table !

Sur la 1.3 ça se fait avec

class Bonjour extends AppModel
{
$useTable = 'autre'
}

Du coup cette fois ton modèle bonjour ira chercher les données dans la table "autre".

C'est un peu le côté magique de cake de ne pas tout avoir à définir si tu suis les conventions de nommage !