Bonjour,
Voila je rencontre un petit problème avec mon code.
Je veux créer une fonction qui retourne la liste des types de chambres d'un hotel.
J'ai fait ceci ci-dessous :
public function test(RoomTypeRepository $roomTypeRepo, $hotel_id){
$roomTypes = $this->getDoctrine()
->getRepository(RoomType::class)
->findByHotel($hotel_id);
dump($roomTypes);die;
// return new Response('Cet hotel est le : '.$hotel_id .' et a des chambres' .$roomTypes->getName());
}
J'aimerais que cela me sorte tous les types de chambres: simple, double, triple.
J'obtiens ce message d'erreur.
Je ne vois pas ce que je suis censé lui indiquer.
J'avais aussi tenté un foreach:
foreach ($roomTypes->getName() as $name)
{
return new Response('Cet hotel est le : '.$roomTypes->getName());
}
J'ai essayé des solutions comme celle de stackoverflow: https://stackoverflow.com/questions/30667122/error-call-to-a-member-function-on-array
mais je n'ai pas compris la procédure.
Je suis assez nouveau sur Symfony.
D'avance merci pour le coup de pouce vers la bonne solution :)
La fonction findOneByHotel te retournera un résultat, et findByHotel retournera un tableau de résultats.
Donc ton foreach est la bonne solution. Mais comme ceci :
foreach ($roomTypes as $room)
{
dump($room->getName());
}
Par contre faire un "return new Response()" dans un foreach ne te renverra que la réponse du premier tour, alors à toi de voir précisément ce que tu veux ...
Bonjour.
Il te faudrait déjà comprendre, que lorsque tu fais un return
, la suite du code ne s'exécutera pas, et sera par conséquent interrompu.
Il n'y a donc aucun intérêt d'utiliser l'instruction return
dans une boucle étant donné que la boucle n'ira pas plus loin que le premier tour de celle-ci.
Merci Gaylord.
Oui, j'avais pourtant mis un findBy et pas findOneBy mais je dois aussi comprendre mieux l'histoire du return new Response
Merci Lartak, encore une fois à ma rescousse.
Je pensais vraiment que le return dans une boucle allait marcher :)
Je vais revoir les bases que j'ai zappé