Bonjour à tous !
Alors voilà, j'ai décidé de me lancer dans une archi MVC en utilisant mon propre "framework" si l'on peut dire
Tout fonctionne à la perfection, mais je n'arrive pas à comprendre deux-trois détails, ce serait sympa de m'éclairer
Voici donc ce que fait mon script :
( j'ai essayer d'expliquer le plus simplement possible )
Il liste chaque client et affichent les formations que ce dernier a sélectionné.
Par exemple un schéma basique :
Donc voilà comment je procédais avant :
( il y a volontairement des fautes afin d'aider à la compréhension )
Maintenant, en MVC, je fait exactement la même chose mais en envoyant la variable "$clients" à la vue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 <?php $clients = query(' SELECT * FROM clients '); $formations = prepare(' SELECT * FROM Formations f, FormationsDesirées fd WHERE fd.client_id = :client_id AND fd.formation_id = f.id '); ?> <!-- code html --> <?php foreach ($clients as $client) { echo 'Numéro: ' . $client->id . ' Nom: ' . $client->nom; echo 'Formations désirées :'; $formations->execute(array( ':client_id' => $client->id )); foreach ($formations as $formation) { echo 'Formation: ' . $formation->nom; } } ?>
Mais là, c'est le drame !
Comment faire pour effectuer tous les traitements dans le contrôleur sans être obligé de mettre le "$formations->execute" dans la vue ?
Car vous êtes conscient qu'un "execute" dans une vue, ça ne le fait pas du tout ...
J'ai d'abord pensé à faire un FetchAll avec PDO, ensuite bouclé et de rajouter les variables :
Voilà en gros ce que je pensait faire :
( il y a volontairement des fautes afin d'aider à la compréhension )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php foreach ($clients as $client) { $formations->execute(array( ':client_id' => $client->id )); foreach ($formations as $formation) { $client->formations[] = \models\Formations::rechercheParID( $formation->id ); } } Vue::envoyerVariable( $client ); ?>
Mais cette méthode ne me semble pas très idéale, ni même adaptée.
Si vous avez des idées, j'en serait heureux !
Merci beaucoup pour votre aide !
.
Partager