Bonjour tout le monde,
Je suis actuellement en train de créer un moteur de blog CRUD, sur architecture MVC. J'ai donc crée une class PostManager, où se trouve la méthode getPosts(), permettant d'avoir les 5 posts les plus récents :
Je re-utilise ensuite cette méthode dans ma classe ControllerHome :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public function getPosts() { $dbh = $this->dbh; $query = 'SELECT * FROM posts ORDER BY creation_date'; $req = $dbh->prepare($query); $req->execute(); $req->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'OC4\Model\Post'); $data = $req->fetchAll(); return $data; }
le var_dump($data) me permet de vérifier que je reçois bien toutes les entrées de ma base de donnée. Etant donné que j'utilise fetchAll(), on me retourne directement les éléments récupérés sous forme d'array. A priori, pas besoin de faire de boucle. Ce qui m'embête, c'est qu'au niveau de la view l'affichage n'est pas dynamique, car il faut préciser quel rangée de l'array nous intéresse à chaque fois, comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public function showPosts() { $this->postManager = new PostManager(); $data = $this->postManager->getPosts(); var_dump($data); require_once('view/frontend/header.php'); require_once('view/frontend/home.php'); require_once('view/frontend/footer.php'); }
Comment faire pour obtenir un affichage dynamique des posts les plus récents ? J'ai donc naturellement pensé à un boucle foreach ($data as $value), mais même après avoir consulté la doc, je ne sais pas de quel manière je pourrais la remplir avec la structure que j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3<div style="border: 1px solid black;"> <h1><?php echo $data[0]['title']; ?></h1> </div>
![]()
Partager