2012-03-04 59 views
31

我試圖使用註解來創建一個簡單的索引中Doctrine2/Symfony2的一個表,我收到以下錯誤語義錯誤:在Doctrine2/Symfony2中創建索引拋出

[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?

我不能在任何文檔中查找我應該「使用」添加索引功能的名稱空間。這裏是我的註解:

@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; 

什麼命名空間,我需要使用添加此功能?

回答

101

看起來像你需要:

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

完美。謝謝! – Dan 2012-03-04 19:48:39

+0

如何使用此方法在多列上添加索引? – jitendra 2015-09-26 11:09:56

+0

如果我在列上設置了「unique」屬性,該怎麼辦? SGBD會自動在目標表列上設置一些索引嗎? – Stphane 2016-03-23 10:19:39

14

您可以使用以下方法來解決這一問題:

use Doctrine\ORM\Mapping\Index;