web-dev-qa-db-fra.com

Tableau de sortie en Twig

J'essaie de sortir un tableau de la base de données à l'écran. Dans mon entité:

/**
 * @ORM\Column(type="array", nullable=true)
 */
private $category;

Dans mon modèle twig:

{% for category in user.profile.category %}
    {{ category }}
{% endfor %}

Erreur: Array to string conversion in ...

Où est mon erreur?

11
nowiko

TWIG ne sait pas comment vous souhaitez afficher votre table.

Soit dit en passant, vous devriez envisager de nommer votre variable $categories au lieu de $category, car votre table contient plusieurs catégories.

Essayez ensuite ceci:

{% for category in user.profile.categories %}
   {{ category }}
{% endfor %}

Si ma réponse ne vous aide pas, veuillez nous donner la structure de votre tableau (y a-t-il des clés ou des sous-tableaux dans votre table ou est-ce juste une liste?)

6
Blacksad

Ainsi, comme le montre l'erreur, vous essayez de convertir un tableau (dans la variable category) en chaîne. Vous pouvez prévisualiser le tableau par dump() ( doc. ). Dans ton cas:

{% for category in user.profile.category %}
    {{ dump(category) }}
{% endfor %}

Veuillez noter que dump() ne doit être utilisé que pour le débogage.

16
NHG

Vous pouvez utiliser join pour sortir un tableau sous forme de chaîne concaténée. Il se comporte comme implode () en php.

Exemple:

{{ [1, 2, 3]|join }}
{# returns 123 #}

{{ [1, 2, 3]|join('|') }}
{# outputs 1|2|3 #}

{{ [1, 2, 3]|join(', ', ' and ') }}
{# outputs 1, 2 and 3 #}

Voir la documentation de jointure de brindille .

13
milkovsky