2012-03-04 30 views
31

Tôi đang cố gắng để tạo ra một chỉ số đơn giản để một bảng trong Doctrine2/Symfony2 sử dụng các chú thích và tôi nhận được lỗi sau:Tạo Index trong Doctrine2/Symfony2 Ném Lỗi ngữ nghĩa

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

tôi không thể tìm thấy trong bất kỳ tài liệu nào không gian tên tôi phải "sử dụng" để thêm chức năng Chỉ mục. Dưới đây là chú thích của tôi:

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

Và đây là những không gian tên Tôi đã sử dụng:

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; 

namespace gì tôi cần phải sử dụng thêm chức năng này?

Trả lời

101

Hình như bạn cần:

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

Perfect. Cảm ơn bạn! – Dan

+0

Làm cách nào để thêm chỉ mục trên nhiều cột bằng cách sử dụng phương pháp này? – jitendra

+0

Điều gì xảy ra nếu tôi đặt thuộc tính 'unique' trên một cột? Liệu tự động hóa SGBD có đặt một số chỉ mục trên cột bảng mục tiêu không? – Stphane

14

Bạn có thể sử dụng sau đây để giải quyết vấn đề:

use Doctrine\ORM\Mapping\Index; 
Các vấn đề liên quan