"Undefined variable" et je ne comprend pas pourquoi
Bonjour à tous,
je suis en train de créer mon 1er programme orienté objet et je rencontre mon 1er soucis. Pour le moment je voulais m'assurer que mes articles seraient affichés; j'ai donc mis de côté la partie contrôleur pour directement appeler depuis mon index. La partie contrôleur sera créée après m'être assuré que ma vue fonctionne. J'ai donc codé comme ceci :
Partie modèle (1) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<?php abstract class Modele{
private $bdd;
protected function executeRequest($data, $param = null) {
if ($param ==null){
$result= $this->getBdd()->query($data);
}
}
private function getBdd(){
if ($this->bdd == null) {
$this->bdd= new PDO("mysql:host=localhost;dbname=blog_jf;charset=utf8",'root',"", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
return $this->bdd;
}
} |
Partie modèle (2) :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<?php require "Modele.php";?>
<?php class ArticleModele extends Modele{
public function getArticles(){
$sql="SELECT content, date_article,title FROM article";
$articles= $this->executeRequest($sql);
return $articles;
}
} |
Partie template :
Code:
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
|
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link href="style.css" rel="stylesheet">
<title><?= $title ?></title>
</head>
<body class="<?= $body ?>">
<header>
<nav>
<div class="logo"><img src="lib/images/logo.png"/></div>
<ul>
<li class="hamburger"></li>
<li><a href="#">Accueil</a></li>
<li><a href="#">A propos de l'auteur</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
<div class="bg"></div>
</header>
<section>
<article>
<?= $content ?>
</article>
</section>
<footer>
<p>2019 - Jean Forteroche</p>
</footer>
<script src="lib/js/main.js"></script>
</body>
</html> |
Partie vueBlog :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<?php $title="Blog"?>
<?php $body ="about"?>
<?php ob_start()?>
<article>
<div class="box-content">
<?php foreach ($articles as $article): ?>
<?= "<h1>" . $article["title"] . "</h1>"?>
<p> <?= $article["content"]?></p>
</div>
<p> <?= $article["date_article"]?></p>
</article>
<?php endforeach ?>
<?php $content= ob_get_clean()?>
<?php require "template.php"?> |
et mon index :
Code:
1 2 3 4
|
<?php
require "modele/ArticleModele.php";
require "vue/vueBlog.php"; |
Les erreurs qui s'affichent sont les suivantes :
Citation:
Notice: Undefined variable: articles in C:\wamp64\www\projetPHP\vue\vueBlog.php on line 8
Citation:
Warning: Invalid argument supplied for foreach() in C:\wamp64\www\projetPHP\vue\vueBlog.php on line 8
Ça fait un moment que je suis dessus et je ne sais vraiment pas pourquoi j'ai un "undefined variable".
Une idée serait la bienvenue :)