Когда я получаю коллекцию ArrayCollection, ключи отсутствуют

Я работаю над Symfony2, используя Doctrine2. Моя проблема в том, что когда я сохраняю коллекцию массивов с ключами, в момент их получения ключи представляют собой обычные ключи индекса массива от 0 до n, а не те, которые я вставляю.

Это моя сущность:

 /**
* @var array
* @ORM\OneToMany(targetEntity="SubEntity", mappedBy="idEntity", cascade={"persist"}, indexBy="idSubEntity")
*/
protected $arraySubEntities;

/**
* @param array() $subEntitiesArray     Simple array with "SubEntity" objects
*
*/
public function __construct($subEntitiesArray)
{
$this->arraySubEntities = new ArrayCollection;

foreach ($subEntitiesArray as $subEntity){
$subEntity->setIdEntity($this);
$this->addArraySubEntities($subEntity->getIdSubEntityType()->getId(), $subEntity);
}public function addArraySubEntities($key, \project\Entity\SubEntityBD $subEntity)
{
$this->arraySubEntities->set($key, $subEntity);

return $this;
}

public function getArraySubEntities()
{
return $this->arraySubEntities;
}

Это часть «сохранить»:

$subEntityTypes = $this->em->getRepository('projectBundle:SubEntityType')->findAll();

$subEntitiesArray = array();
foreach ($subEntityTypes as $subEntityType) {
$subEntitiesArray[] = new SubEntity($subEntityType);
}

$entity = new Entity($subEntitiesArray);
var_dump($entity);

‘Var_dump ()’ в конце показывает мою сущность с правильными ключами, правильными классами, все правильно.

Эта проблема:

$entity = $this->em->getRepository('projectBundle:Entity')->find($idEntity);

$subEntitiesArray = $entity->getArraySubEntities();
var_dump($subEntitiesArray);

Последний ‘var_dump ()’ показывает тот же массив, но с ключами от 0 до N.

Кстати, я хочу, чтобы у моей сущности была коллекция массивов со всеми подчиненными сущностями, с которыми она связана, и индексированная по типу подчиненной сущности, которой они являются. Как я уже сказал, на первом шаге все работает нормально, но когда я извлекаю arrayCollection из сущности, он теряет все свои ключи. Я сделал ‘var_dump ()’ из сущности, которую он сам после получения, и ключи массива тоже от 0 до N.

Заранее спасибо,
Приветствия.

РЕШЕНО: похоже, что я получаю только что сформированный массив, поэтому ключи, которые у меня были, потеряны.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]