Le code ? :)
Bonjour,
Voila je rencontre un petit problème avec mon code.
Actuellement je suis le cours de Grafikart sur la mise en pratique de la POO en PHP, et je bloque au chapitre 7, vers les 5 premières minutes, là où il récupère ses articles depuis sa base de données. Seulement l'erreur que j'obtiens est assez bizarre, il me dit que blog.show attends les paramètres [slug, id], sauf que j'envoie les paramètres [slug, id], je vous montre le code ci-dessous, car actuellement je ne comprends pas l'erreur.
Ce que j'obtiens
Cela fait une heure que je bloque sur cela, et si quelqu'un sait comment y remédier, cela me sera très utile !
Merci
25 réponses
Bonjour
index.twig
BlogAction.php
BlogModule.php
Dis moi si tu as besoin d'autre chose
Ah au fait oui j'ai rajouté un 'd' dans index.twig mais ce n'est pas ce qui fait bloquer le système
C'est bien ce que je pensais, l'erreur vien de twig, remplace ça:
par ceci:
Malheureusement j'ai toujours la même erreur 500, peut-être je devrais update twig ou autres librairies ?
Les erreurs twig sont partie au moins ? il ne te reste que l'erreur 500 ?
Non j'ai strictement pareil
Au niveau de ton routeur c'est normal ça ?
C'est pas plutôt :
J'ai pas suivis en entier cette formation, mais il s'agit bien de slim pour le routeur non ?
Non le regex est correct selon moi, j'ai testé quand même ta modification mais le problème reste toujours le même
Également j'ai téléchargé les sources du chapitre et il s'avère que j'obtienne la même erreur (en ayant adapté ma DB avec ses sources évidemment)
Ah ? il s'agit sans doute d'un problème de mise à jours.
Mais en regardant bien l'erreur le soucis viens du routeur, si tu retire la route pour l'affichage d'un article, le reste fonctionne ?
Je ne vois que le slug dans ton 'BlogAction.php'
Or dans ta route tu demande aussi un id
Oui, la page s'affiche, c'est juste la boucle for de twig qui pose problème
Non, mais je ne pense pas que la fonction show() ait quelque chose en rapport avec l'erreur, les 'articles' ne s'affichent pas dans l'index
Enfin, même si j'ai update twig à sa dernière version (2.4.6) il y'a toujours la même erreur
fait un var_dump() de tes articles dans le controllers sans afficher la vue, vérifie que tu as bien les 'slug' et 'id' de récupéré. Si ça bloque avant ça viens du routeur, après c'est twig.
Mais après avoir corriger les (') dans ta fonction path de twig je vois pas ou est le problème :/
D'ailleurs je viens de le voir que maintenant mais ton erreur 500 tu l'as sur ta route '/news' ? Oo
Normalement les articles doivent apparaître dans localhost:8000/news
Donc je ne pense pas qu'il y ait un problème de ce niveau là
Je viens de saisir le fonctionnement de ton controller, j'avais pas remarqué l'invok.
Tu n'as pas partagé ton show.twig d'ailleurs :/
Etant donné que j'ai mis une vingtaine d'entrées dans ma table, je te renvoie juste un seul array
(pdf_link étant une colonne de ma table de type string, où j'ai rentré des phrases random pour l'instant)
{ [0]=> object(stdClass)#176 (1) { ["pdf_link"]=> string(42) "La liberté de changer en toute sécurité" }
Le show.twig n'a selon moi aucun rapport, je l'ai juste mis dans mon index.twig afin faire un lien (qui ne marcherais pas puisque je n'ai pas fait la suite du code). Je n'arrive juste pas à afficher toutes les entrées de ma DB dans l'index, et on me renvoie une erreur 500
Salut, dans ton controller BlogAction, lors de ta requête tu ne récupères ni le slug ni l'id mais tu récupères uniquement le pdf_link, fait plutôt un SELECT *.
Non, cela ne fonctionne pas
Ah l'index !
Vu que tu parlais de slug et id je pensais l'affichage d'un article selectionné.
Le soucis viens des données récupéré, ce que tu as envoyé dernièrement, l'article est composé que d'une colonne 'pdf_link' qui retourne 'La liberté de changer en toute sécurité'.
Hors dans ta vue tu cherches à récupérer la colonne slug et id. Du coup l'erreur twig viens du fait que tu récupères des données inexistantes de ton objet injecté dans ta vue, autrement dit null.
En effet j'avais mal fait la distinction avec les colonnes de ma DB, merci encore Simon
Select the disk storage location where you lost data and click "Scan". EaseUS Data Recovery Wizard will start a quick scan first. Choose the file(s) you want to recover by file types from the scanning results. Click "Recover" button to recover the selected files. https://mobdro.ooo