Bất cứ khi nào tôi sử dụng ArrayCollection với Doctrine ORM (2.3, PHP> 5.4), và liên kết giá trị đối tượng với khóa trong bộ sưu tập (chẳng hạn như khi sử dụng phương pháp set
), các giá trị được lưu trữ chính xác trong cơ sở dữ liệu. Nhưng khi tôi muốn lấy bộ sưu tập từ thực thể, các phím không được lấy ra và thay vào đó chúng sử dụng một chỉ số dạng số.Doctrine - Store ArrayCollection keys
Ví dụ, nếu tôi có các lớp sau:
/** @Entity */
class MyEntity
{
/** @OneToMany(targetEntity="MyOtherEntity", mappedBy="mainEntity") */
private $myArray;
public function __construct()
{
$this->myArray = new ArrayCollection();
}
public function addOtherEntity($key, $value)
{
$this->myArray->set($key, $value);
}
...
}
/** @Entity */
class MyOtherEntity
{
/** @ManyToOne(targetEntity="MyEntity", inversedBy="myArray") */
private $mainEntity;
...
}
Phương pháp set
hoạt động đúng, nhưng khi tôi lấy thông tin các phím trong $myArray
đã mất hết.
Làm cách nào để làm cho ORM nhớ chính xác các phím? Cảm ơn bạn trước.
Đây có phải là giải pháp để nhận phản hồi được khóa. –
http://doctrine-orm.readthedocs.org/en/latest/tutorials/working-with-indexed-associations.html –
Đợi phản hồi nào? Truy vấn một? –