2010-11-15 13 views
12

Tôi có một câu hỏi đơn giản về (bằng cách thực sự tuyệt vời!) Doctrine ODM.Loại ánh xạ nào để chọn cho mảng kết hợp? Doctrine ODM

Giả sử bạn có một tài liệu như:

/** 
* @Document 
*/ 
class Test 
{ 
    /** @Id */ 
    public $id; 
    /** @WHICHTYPE */ 
    public $field = array(); 
} 

Bây giờ tôi muốn lưu trữ một mảng kết hợp như

array("test" => "test1", "anothertest" => "test2", ......); 

Trong tài sản $ lĩnh vực của lớp đó.

Không có vấn đề gì đối với MongoDB, nhưng trong Doctrine khi tôi sử dụng ví dụ @Collection hoặc đơn giản @Field, chỉ các giá trị được lưu trữ (mảng_values ​​đang được sử dụng trong trình điều khiển ánh xạ để thu thập ví dụ). Vì vậy, giá trị được lưu trữ trông giống như

array("test1", "test2", ....) 

Có ai biết loại ánh xạ Doctrine-ODM nào tôi nên sử dụng để bảo toàn các cặp khóa-giá trị trong cơ sở dữ liệu không?

Cảm ơn bạn trước,

Andi (Greetz từ Đức)

Trả lời

-5

@Array nên làm việc. Ít nhất tương đương tồn tại trong ORM (@column (type = "mảng"))

+4

đây là câu trả lời vô dụng thực sự – Chris

1

Đối với các phiên bản trước ODM 2.0 @Hash sẽ cung cấp cần thiết loại dữ liệu. Tuy nhiên sau khi ODM 2.0 @Hash lĩnh vực đang được gỡ bỏ. Để sử dụng nó, chúng ta phải sử dụng @field với băm kiểu. Để tham khảo thêm [click here][1]