Создание индекса в Doctrine2 / Symfony2 создает семантическую ошибку - PullRequest
34 голосов
/ 04 марта 2012

Я пытаюсь создать простой индекс для таблицы в Doctrine2 / Symfony2, используя аннотации, и получаю следующую ошибку:

[Семантическая ошибка] Аннотация "@Index" в классе {My \ Namespaces \ Here} никогда не импортировалась. Возможно, вы забыли добавить выражение «использование» для этой аннотации?

Я не могу найти ни в одной документации, какое пространство имен я должен "использовать" для добавления функциональности индекса. Вот моя аннотация:

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

А вот пространства имен, которые я уже использую:

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;

Какое пространство имен мне нужно использовать для добавления этой функциональности?

Ответы [ 2 ]

109 голосов
/ 04 марта 2012

Похоже, вам нужно:

@ORM\Table(indexes={@ORM\Index(name="email_address_idx", columns={"email_address"})})
16 голосов
/ 06 ноября 2013

Для решения проблемы можно использовать следующее:

use Doctrine\ORM\Mapping\Index;
...