Doctrine ORM ile bir ArrayCollection (2.3, PHP> 5.4) kullandığımda ve nesne değerlerini koleksiyondaki bir anahtarla ilişkilendirdiğinizde (set
yöntemini kullanırken olduğu gibi), değerler doğru şekilde depolanır. veritabanında. Ancak, koleksiyonun varlıktan alınmasını istediğimde, anahtarlar alınmıyor ve bunun yerine sayısal bir dizin kullanıyorlar. ÖrneğinDoctrine - Store ArrayCollection tuşları
, şu dersleri varsa:
/** @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;
...
}
set
yöntem düzgün çalışır, ancak ben $myArray
bilgilere anahtarlarını almak zaman gitmiş.
ORM'yi anahtarların doğru şekilde hatırlamasını nasıl sağlayabilirim? Önceden teşekkür ederim.
Yanıtın anahtarlanması için çözüm budur. –
http://doctrine-orm.readthedocs.org/en/latest/tutorials/working-with-indexed-associations.html –
Hangi yanıtı bekleyin? Sorgu bir? –