web-dev-qa-db-fra.com

La création d'un index dans Doctrine2 / Symfony2 génère une erreur sémantique

J'essaie de créer un index simple vers une table dans Doctrine2/Symfony2 à l'aide d'annotations et j'obtiens l'erreur suivante:

[Erreur sémantique] L'annotation "@Index" dans la classe {My\Namespaces\Here} n'a jamais été importée. Avez-vous peut-être oublié d'ajouter une instruction "use" pour cette annotation?

Je ne trouve dans aucune documentation quel espace de noms je suis censé "utiliser" pour ajouter la fonctionnalité Index. Voici mon annotation:

@ORM\Table(indexes={@Index(name="email_address_idx", columns={"email_address"})})

Et voici les espaces de noms que j'utilise déjà:

use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints as DoctrineAssert;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;

Quel espace de noms dois-je utiliser pour ajouter cette fonctionnalité?

34
Dan

On dirait que vous avez besoin:

@ORM\Table(indexes={@ORM\Index(name="email_address_idx", columns={"email_address"})})
109
rojoca

Vous pouvez utiliser les éléments suivants pour résoudre le problème:

use Doctrine\ORM\Mapping\Index;
16
johnmadrak