Bonjour,

Cela fait un petit moment maintenant que j'ai réalisé les tutos sur la creation d'un site de A-Z (au passage bravo pour le boulot Grafikart). J'ai poussé le système un peu plus loin en mettant en place un système de liaison, la gestion d'un cache etc...
Mon souci ce situe au niveau de la récupération des données. Comme le "framework" ne connait pas les types des champs qu'il utilise (ne différencie pas un input d'un textarea ou même d'un texteare avec éditeur WYSIWYG), si on veut afficher le contenu d'un textarea, on est obligé de faire :

nl2br(htmlspecialchars(stripslashes($value)));

.
Ce que j'aimerai faire, c'est écrire dans mes vues toujours la même chose

commentaire.nom

et

commentaire.message

sans avoir à me soucier s'il faut faire des échappements ou autres. Je pensai réaliser cette opération au niveau du Model lorsque je récupère les valeurs en base mais je ne vois pas du tout comment procéder si une personne aurai une piste pour m'éclairer ça serai sympa ^^

Merci.

3 réponses


Bonsoir,

bon une petite idée comme ça, tu pourrais rajouter une variable globale à ton Model (genre un tableau) qui contiendrais la description de tes champs (un peu à la façon de Doctrine) et dans la classe parente de ton Model rajouter un hook juste avant la sauvegarde et juste après la récupération afin de parcourir ce tableau et d'appliquer des traitements sur tes champs.

LudoFA
Auteur

Salut,

Merci de ta réponse, mais je voudrai ne pas avoir à décrire mes champs car pour avoir utilisé Doctrine pour un projet, je trouve ca "lourd" d'avoir à rajouter les informations d'un champs dès que tu fait une modification sur ta table. Du coup, j'aimé bien le principe du tuto où on avait pas besoin de les décrire.

Bah après tu peux également récupérer automatiquement les métas données de ton champs en base avec la fonction PDO getColumnMeta (http://www.php.net/manual/en/pdostatement.getcolumnmeta.php). L'inconvénient de ça c'est que ça rajoute une requête à chaque fois. Sinon, tu sais qu'avec Doctrine (1 ou 2) tu peux générer tes entités automatiquement.