Affichage vide avec une liste d'objets récupérées via PDO
bonjour,
J'essaie d'afficher les données de ma sources de données.
Elle est remplie par une requête éxecutée via PDO. La méthode me retourne une liste d'objets remplie.
Lorsque j'essaie de l'afficher il n' y a pas d'erreurs php mais le code php me renvoie du vide.
En détail voici le code:
Ma classe entite
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
|
class News {
public $_id; // en public afin de vérifier si je peux y accéder directement mais il repassera en private
public $_titre; // en public afin de vérifier si je peux y accéder directement mais il repassera en private
public function getId()
{
return $this->_id;
}
public function setId($id)
{
if(!is_int($id))
throw new Exception('L\'id n\'es pas de type int');
$this->_id = $id;
}
public function getTitre()
{
return $this->_titre;
}
public function setTitre($titre)
{
if(!is_string($titre))
throw new Exception('Le titre n\'es pas de type string');
$this->_titre = $titre;
}
} |
Ma classe Manager
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
require 'news.php';
class newsManager
{
const SELECT_5LAST_NEWS = 'SELECT * FROM news ORDER BY id DESC LIMIT 0,5';
public function select5News()
{
$this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = $this->_db->query(self::SELECT_5LAST_NEWS);
$query->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'News');
$listNews = $query->fetchAll();
$query->closeCursor();
return $listNews;
}
} |
Pour l'affichage de ma page index voici le code:
Code:
1 2 3 4 5 6 7 8
|
require 'classes/newsManager.php';
$newsmngr = new newsManager();
$list = $newsmngr->select5News();
foreach($list as $news)
{
echo '<section><p class="titre"><a href="administration.php?id='.$news->getId().'">'.$news->getTitre().'</a></p></section>';
} |
J'obtiens un affichage vide. Je vous laisse le code source de la page.
Code:
1 2
|
<section><p class="titre"><a href="administration.php?id="></a></p></section> |
Pourtant quand je fais un var_dump comme ceci:
Code:
1 2 3 4 5
|
(...)
$list = $newsmngr->select5News();
var_dump($list);
(...) |
il m'affiche bien le contenu de ma source de données
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
array (size=4)
0 =>
object(News)[4]
public '_id' => null
public '_titre' => null
private '_auteur' => null
public '_contenu' => null
private '_dateAjout' => null
private '_dateModif' => null
public 'id' => string '4' (length=1)
public 'auteur' => string 'thierry77' (length=9)
public 'titre' => string 'mais encore....' (length=15)
public 'contenu' => string 'Quid enim tam absurdum quam delectari multis inanimis rebus, ut honore, ut gloria, ut aedificio, ut vestitu cultuque corporis, animante virtute praedito, eo qui vel amare vel, ut ita dicam, redamare possit, non admodum delectari? Nihil est enim remuneratione benevolentiae, nihil vicissitudine studiorum officiorumque iucundius.' (length=328)
public 'dateAjout' => string '0000-00-00 00:00:00' (length=19)
public 'dateModif' => string '0000-00-00 00:00:00' (length=19)
(...) |
Il n'y a aucune error PHP. je sèche un peu. Je suis novice en PHP; je suis un développeur .Net.
Merci de votre aide.