Coucou à tous,

Je me suis lancé dans la POO , ce n'est pas évident, aujourd'hui je suis confronté à un problème.

Je crée un petit blog. J'ai donc une table posts et une table categories. J'ai donc créé 2 class post et category.

Mais lorsque je fais une requête pour récupéré les posts, j'aimerai faire une jointure sur la table categories or je ne peux pas vraiment hydrater le tout puisque c'est réparti en deux classes.

Je me pose donc les questions suivantes :

Est-bien judicieux de créer une class par table, j'avais cru comprendre que c'était un obligé puisque chaque table possède un champ id ...on a pas trop le choix.

Et si oui, alors comment faire pour hydrater deux class différentes avec une requête ?

A moins que je ne récupère que les posts et les catégories en suivant...

Merci pour votre aide

2 réponses


Grafikart
Réponse acceptée

Là tu peux regarder côté ORM comment il gère ce genre de chose mais avec mysql ce n'est pas facile car le LEFT JOIN aplatit tous les champs (impossible pour le code de savoir quoi appartient à qui. On peut imaginer un système ou dans tes champs tu prefix les champs d'une catégorie par category_ et le constructeur de ton model Post créerait une propriété catégorie qui serait une instance de catégorie à partir des champs en question.

Fwanky33
Auteur

Merci c'est bien ce que je pensais. C'est étonnant qu'il y ait autant de tutos sur la POO mais que personne n'aborde ce point. En fait c'est un peu la surprise, lorsqu'on veut faire une jointure on s'apperçoit que grosso modo soit on se fabrique son framework , soit on en utilise un déjà fabriqué...