Bonjour à tous,
J'ai une liste d'objets Bien. Chacun de ces objets possède une dizaine d'attributs, dont un attribut $photos, qui est un array d'objets Photo. Cette liste d'objets est correcte, je l'ai testée. Elle s'appelle $liste, et var_dump($liste) m'affiche bien ma liste d'objets, avec les bons attributs. Pour accéder à ma liste de photos, attribut de mon objet Bien, j'ai une méthode getPhotos() de mon objet Bien, dont voici le code :
Elle devrait donc renvoyer l'array de photos. J'ai voulu faire une boucle foreach, qui boucle tous les biens et affiche les photos de chaque. Mais il se passe quelque chose que je ne comprends pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public function getPhotos(){ return $this->photos; }
immédiatement après la ligne où ma liste est correcte (c'est-à-dire juste après mon var_dump et après l'avoir "commenté"), je commence ma boucle foreach comme ceci :
mais si je fais un var_dump($bien) juste à la suite, seul le premier objet est retourné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 foreach($liste as $bien){ $photos = $bien->getPhotos();
Je constate que l'include final de ma page (footer.php) n'apparaît pas non plus. J'en déduis que j'ai un problème de fermeture de parenthèse, guillemets ou balise. En effet, je constate qu'à un moment, la coloration syntaxique change : avec ce code :
Le changement de coloration syntaxique semble se produire lorsque j'essaie de préciser la source des images : <img src"<?php...?>"... Est-ce que les guillemets sont mal interprétés ? Si je les échappe, la coloration ne change pas. Y a-t-il une autre façon de faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <div class="cadre-annonce"> <figure><img src="<?php if (!empty($photos)) { echo 'images/'.$photos[0]; }else{ echo 'images/no_picture2.jpg'; } ?>"><figcaption data-toggle="modal" data-target="#<?php echo $id_modal?>"><h4><span class="fa fa-search"></span> Cliquez ici pour voir les détails</h4></figcaption ></figure><section><?php echo $resume.'</section></div>
La coloration syntaxique semble redevenir normale si je remplace les " par " mais le résultat est le même : le script n'est pas lu jusqu'au bout.
Merci d'avance de votre aide.
Partager