Afficher une erreur dans mon formulaire si template inexistant

Fermé
ertry - 5 oct. 2016 à 15:34
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 6 oct. 2016 à 14:05
Bonjour,
Je vous explique mon problème.
J'ai actuellement un select dans ma vue, issu d'un FormType, qui me liste tous les types de championnats (L1, L2, National).
J'ai créé une fonction dans un service qui me permets d'aller chercher les paramètres à remplir pour chaque championnat lorsque je sélectionne un championnat dans ma vue, que j'ai appelée getParametersForChampionnats(). A cette méthode je lui passe donc une variable $championnat_type (qui définit comme nommé le type de championnat) et que j'utilise lors de la fabrication de mon chemin pour aller chercher les paramètres qui seront affichés dans ma vue et qui me permettront de m'afficher un template spécifique par championnat. Voici ce chemin:
$content_file_championnat = file_get_contents('championnats/'.$championnat_type.'/template_championnat.conf');


Et voici ma méthode :
public function getParametersForChampionnats($championnat_type)
    {
        // Traitement méthode
    }


A présent ce que je cherche à faire, c'est lorsque par exemple un template de configuration d'un championnat n'est pas trouvé (problème dans le chemin ou erreur de fichier), cela affiche en dessous de mon select sur ma vue, une erreur dans une div type "alert-danger" et cette erreur devra être logguée dans mon historique.
Je ne sais pas comment procéder pour gérer le cas où le template n'est pas trouvé et qu'il faut logguer cette erreur.
J'ai juste une idée pour le logger en utilisant :
$logger = $this->get('logger');
$logger->error("Le template ".$championnat_type." n'est pas trouvé.");

Merci de me donner des idées si vous en avez :/



A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
5 oct. 2016 à 16:54
Salut,

Tu peux utiliser la fonction is_file() pour vérifier que le fichier existe bien, ou vérifier le retour de la fonction file_get_contents() qui retournera le booléen FALSE si une erreur survient lors de la récupération du contenu du fichier.

https://www.php.net/manual/fr/function.is-file.php
https://www.php.net/manual/fr/function.file-get-contents.php

Bonne journée,
0
Je viens de tester la fonction is_file et elle me retourne tout le temps FALSE mêmes quand les résultats sont TRUE normalement :/
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
5 oct. 2016 à 17:22
As tu bien renseigné le chemin vers le fichier ? Tu peux utiliser le même chemin que tu as utilisé avec la fonction file_get_contents :
if (is_file('championnats/'.$championnat_type.'/template_championnat.conf')) 
0
C'est bon je mettais trompé, en revanche un problème que je remarque c'est ma variable $content_file_championnat sera placée avant ma boucle if pour testé s'il y a une erreur et le problème c'est que vu que ma variable $championnat_type est présente dans mon chemin et qu'elle n'est pas connue, cela affiche une erreur (logique) et je ne pourrait donc, jamais dans ma boucle pour tester mes conditions et ainsi afficher l'erreur :/
0
C'est bon j'ai réussi. J'ai donc créé deux variables avant ma boucle pour d'abord vérifier le chemin avec is_file, ensuite j'ai fais mon if pour vérifier l'erreur.

Par contre maintenant, je suis bloqué sur la partie je pense la moins dur mais j'avoue que je vois pas du tout comment faire pour afficher une div type "alert-danger" dans ma vue si le template sélectionné n'est pas bon. Je ne vois pas quelle variable lui passer pour faire un {% if %} dans ma vue
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
6 oct. 2016 à 14:05
Ne peux tu pas réutiliser la même variable de retour de la fonction is_file() ?
Ou peut être en vérifiant le contenu de la variable $content_file_championnat qui doit être affiché si le fichier est correct. Dans le cas où cette variable est vide, on considère que le fichier de conf n'est donc pas correct.
0