- Classe :
AppoloDev\SFToolboxBundle\Form\DataTransformer\StringToArrayTransformer - Fichier source :
src/Form/DataTransformer/StringToArrayTransformer.php - Implémente :
Symfony\Component\Form\DataTransformerInterface
Transformer de formulaire convertissant un array (représentation "modèle", côté PHP/entité) en chaîne jointe par des virgules (représentation "vue", côté champ HTML), et inversement. Utilisé automatiquement par TomSelectType quand multiple: true.
Sens modèle → vue : si $value est un array, le joint avec , (implode). Sinon retourne $value tel quel.
$transformer->transform(['php', 'symfony']); // "php,symfony"Sens vue → modèle : si $value est une chaîne, la découpe sur , (explode) et retourne le tableau obtenu. Sinon retourne null.
$transformer->reverseTransform('php,symfony'); // ['php', 'symfony']
$transformer->reverseTransform(42); // nulluse AppoloDev\SFToolboxBundle\Form\DataTransformer\StringToArrayTransformer;
$builder->get('tags')->addModelTransformer(new StringToArrayTransformer());C'est exactement ce que fait automatiquement TomSelectType en interne quand l'option multiple vaut true — vous n'avez pas besoin de l'ajouter vous-même dans ce cas précis.
- ArrayToStringTransformer — variante avec gestion de valeurs par défaut prioritaires.
- FormType/TomSelectType — utilisateur principal de ce transformer.