2016-10-24 1 views
3

Mon entité a une propriété du type simple_array, stockant une liste de chaînes générées par l'utilisateur (donc choice ne s'applique pas).gestion simple_array avec SonataAdminBundle

La partie pertinente de l'entité:

/** 
* @var array 
* 
* @ORM\Column(type="simple_array") 
*/ 
private $tags; 

Je voudrais utiliser le SonataAdminBundle pour afficher, créer et modifier l'entité avec les balises présentes:

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     ->add('tags', 'collection'); 
} 

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->add('tags', 'array'); 
} 

La liste fonctionne, mais montre [0 => Tag1, 1 => Tag2] où je préfère montrer Tag1, Tag2. La création et l'édition ne fonctionnent pas du tout, ne montrant rien où le champ de saisie pour les balises devrait être. Pour être clair: Les balises ne sont pas une entité liée, elles sont simplement un tableau de chaînes!

+0

peut-être que cette réponse peut vous aider à http://stackoverflow.com/questions/40046848/how-to-add-an-array-customisable-to-a-symfony2-form-with-sonata- admin/40052463 # 40052463 sans le transformateur de données – yceruto

+0

Than ks Yonel. La solution proposée fonctionne pour la partie d'ajout/édition, mais je suis toujours intrigué par la partie vue. Toute aide là-bas est appréciée! – Sgoettschkes

Répondre

2

Pour ajouter/modifier vos balises Je recommande cette solution générale How to add an array (customisable) to a symfony2 form (with sonata Admin)?


Pour la personnalisation des valeurs de tableau (par défaut) en mode liste que vous avez besoin, juste remplace le modèle list_array.html.twig de SonataAdminBundle, à quelque chose comme ceci:

{% extends admin.getTemplate('base_list_field') %} 

{% block field %} 
    {{ value|join(', ') }} 
{% endblock %} 
+0

C'est exactement ce que j'ai fait il y a 10 minutes. J'ai fini par créer mon propre modèle pour ce genre de liste de tableau et ne pas écraser celui par défaut, cependant! – Sgoettschkes