Добавить объект в массив php в symfony

У меня сейчас 2 класса:

  1. workerListClass
  2. рабочий класс

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
    }

добавить дату очень просто

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 дважды?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
1 026
1

Ответы 1

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

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

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());
    }

Другие вопросы по теме