Добавить объект в массив PHP в Symfony - PullRequest
0 голосов
/ 22 марта 2019

В настоящее время у меня есть 2 класса:

  1. workerListClass
  2. workerClass

workerListClass получает список работы с идентификаторами из базы данных.Для каждого из них рабочий класс называется

foreach ($query as $value) {
        $result = $this->worker->getWorkerById($value['ID']); // DB Call to get additional data
        $this->addData($result);

        vardumper::dump($result->getId());
        // This results in 1031 and 1528
    }

addDate очень прост

public function addData(workerClass $worker): void
{
    $this->data[] = $worker;
}

Но если я пытаюсь пройти через этот массив, происходит нечто странное

        $result = $this->workerListClass->getWorker()->getData();
    foreach ($result as $worker) {
        vardumper::dump([
            $worker->getId() // this outputs 1528 twice!!!
        ]);
    }

getData не делает ничего особенного

public function getData(): array
{
    return $this->data;
}

Может кто-нибудь помочь мне, почему это выдает 1528 дважды?

1 Ответ

0 голосов
/ 22 марта 2019

Проблема найдена.Проблема заключалась в том, что тот же класс был изменен, а новый класс не был настроен.

Использование клона в рабочем списке помогло исправить это:

foreach ($query as $value) {
        $localWorker = clone $this->worker; //starts a new instance so that it is not referenced
        $result = $localWorker->getWorkerById($value['ID']);
        $this->addData($result);
        vardumper::dump($result->getId());
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...