Bonsoir,
Je me permets de vous soumettre une problématique que je rencontre sur un projet de forum.
Le but est de sauvegarder les données de l'API de chaque personnage du jeu Apex Legends (le nom et l'image du perso) en BDD dans chaque propriété de l'entité "Subject" reliée à l'entité "Catégory" de l'entrée Personnages, les récupérer et les afficher.
Voilà schématiquement :
Ici j'ai mon entité Catégory avec l'entrée Personnages
A l'intérieur de cette catégorie j'aurais plusieurs entrées sujets (reliées à l’entité Subject) avec pour propriétés le nom et l'image de chaque personnage
Ce qui donnera pour rendu final ca :
Pour ce faire j'ai travaillé sur l'affichage depuis un autre controlleur et une autre template Twig.
Voici le code du service ApiLegends
Le Controller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 namespace App\Service; use Symfony\Contracts\HttpClient\HttpClientInterface; class ApiLegends { private $client; public function __construct(HttpClientInterface $client) { $this->client = $client; } public function getAllLegends(): array { $response = $this->client->request( 'GET', 'https://api.mozambiquehe.re/bridge?version=4&player=heyimlifeline&platform=PC&auth=xxHvYsvRMMYp471ObEO8', ); return $response->toArray(); } }
Et ici la Vue Twig
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 /** * @Route("/api/v1/legends", name="api_v1_legends") */ public function browse(ApiLegends $apiLegends): Response { $legends = $apiLegends->getAllLegends(); return $this->render('api/v1/browse.html.twig', [ 'data' => $legends, ]); } }
Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 {% for key, legend in data.legends.all %} <div class="row border"> <div class="item-left col-3"> <div class="d-flex"> <img class="text-center w-25" src="{{ legend.ImgAssets.icon }}"> <h2>{{ key }}</h2> </div>
Aperçu de l'API en JSON que j'ai transformé en tableau pour récupéré les valeurs :
Ce qui me donne le résultat que je souhaite, comme montré dans une capture au dessus.
Maintenant j'aimerais pouvoir récupérer, sauvegarder ces données dans les propriétés de l'entité Subject (name + picture) reliés à la catégorie Personnages et les afficher sur ma vue Twig.
En espérant avoir été clair et concis, je vous remercie d'avance pour votre aide.
Partager