Ilekroć używam ArrayCollection z Doctrine ORM (2.3, PHP> 5.4) i kojarzę wartości obiektów z kluczem w kolekcji (np. Przy użyciu metody set
), wartości są poprawnie zapisywane w bazie danych. Ale gdy chcę odzyskać kolekcję z encji, klucze nie zostaną odzyskane i zamiast tego używają indeksu numerycznego.Doctrine - Store ArrayCollection keys
Na przykład, jeśli mam następujących klas:
/** @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;
...
}
Sposób set
działa poprawnie, ale kiedy pobierania informacji klawiszy w $myArray
zniknęły.
Jak sprawić, aby ORM prawidłowo pamiętał klucze? Z góry dziękuję.
Jest to rozwiązanie, aby uzyskać odpowiedź na klucz. –
http://doctrine-orm.readthedocs.org/en/latest/tutorials/working-with-indexed-associations.html –
Czekaj, jaka odpowiedź? Pytanie pierwsze? –