2012-03-04 11 views
31

Próbuję utworzyć prosty indeks do tabeli Doctrine2/Symfony2 użyciem adnotacji i dostaję następujący błąd:Tworzenie indeksu w Doctrine2/Symfony2 Zgłasza semantyczne Błąd

[Semantical Error] The annotation "@Index" in class {My\Namespaces\Here} was never imported. Did you maybe forget to add a "use" statement for this annotation?

nie mogę znajdź w dowolnej dokumentacji jaką przestrzeń nazw, którą mam "użyć", aby dodać funkcjonalność indeksu. Oto mój adnotacji:

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

A oto nazw już używam:

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; 

Co nazw muszę użyć, aby dodać tę funkcjonalność?

Odpowiedz

101

Wygląda jak trzeba:

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

Perfect. Dziękuję Ci! – Dan

+0

Jak dodawać indeksy do wielu kolumn za pomocą tego podejścia? – jitendra

+0

Co się stanie, jeśli ustawię atrybut 'unique' w kolumnie? Czy SGBD automatycznie ustawi indeks na kolumnie tabeli docelowej? – Stphane

14

można użyć następujących czynności, aby rozwiązać ten problem:

use Doctrine\ORM\Mapping\Index; 
Powiązane problemy