4 votes

Accéder aux valeurs d'un enum dans Twig

Dans une de mes entités, j'ai ajouté ceci :

class MyClass {

  // Annotations   

  /**
   * @ORM\Column(type="integer")
   */
  private $status;

  // Status values
  const Created = 10;
  const Refused = 20;
  const Valid   = 30;

  // Getters, setters
}

Je peux donc accéder à ces valeurs en utilisant MyClass::Status (MyClass::Created, MyClass::Refused etc...) comme une énumération.

Je veux vérifier quel est le statut actuel de mes entités dans mes modèles. Mais je ne sais pas comment faire.

J'ai essayé (désespérément) :

{% if entity.status == entity.Created %}

Ce qui ne fonctionne pas comme prévu.

Mais rien ne fonctionne, et je n'ai rien trouvé sur google ou SO.

5voto

Ahmed Siouani Points 11775

Created n'est pas un attribut de votre entité,

Essayez d'utiliser,

{% if entity.status is constant('path_to_your_bundle\\Entity\\MyClass::Created') %}

4voto

gpichot Points 1148

La solution la plus élégante (telle que trouvée dans la documentation de Twig, grâce à Ahmed Siouani) est :

{% if entity.status is constant('Created', entity) %}

0voto

Jan Klan Points 26

Si vous utilisez un Backed Enum vous pouvez accéder à sa valeur comme suit :

{% if entity.status.value == 'created' %}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X