Bonjour,
J'ai classé ce sujet en PHP, mais en fait je pense que c'est une problématique qu'on peut retrouver dans plusieurs langages.
J'ai un modèle dans lequel j'ai un champ qui peut contenir une liste de valeurs prédéfinies (mettons des noms de cursus post-bac). En base de données ce champ est un smallint (la liste n'est pas très longue).
Ensuite, pour lier les valeurs numériques de la base de données à leur version affichable, j'utilise un hash statique ainsi qu'un accesseur.
Ça donne un truc de ce style (sous Symfony) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php /** * @var integer * * @ORM\Column(name="section", type="smallint", nullable=true) * @Assert\Range(min="1", max="4", minMessage="Choisissez une valeur valide.", * maxMessage="Choisissez une valeur valide.") */ private $section; /** * @var array */ private static $sectionName = array( '1' => 'Classe préparatoire', '2' => 'IUT', '3' => 'BTS', '4' => 'Université' ); /** * Get sectionName * @return array */ public static getSectionName () { return self::$sectionName; } |
L'avantage de cette technique, c'est que je peux l'utiliser assez simplement depuis Twig avec une syntaxe du type {{ user.sectionName[user.section] }}
.
Cette manière de faire me convient, le truc c'est que je l'ai « trouvée » par moi-même et un peu par hasard, c'est pour cela que je me demande s'il n'existe pas plutôt une bonne pratique qui pourrait répondre à ce type de problématique et qui serait peut-être plus élégante que ce que je fais actuellement.
Merci pour vos réponse !