pu sh данные в массив объектов Symfony - PullRequest
0 голосов
/ 13 февраля 2020

Привет, ребята, мне нужна небольшая помощь. У меня здесь есть массив, и этот массив содержит объекты, теперь каждый из этих объектов содержит отрывок со своим статусом и общим счетом за день. Теперь я также получаю дату, на которую день или месяц, когда они были созданы, я не могу понять, как передать дату в этот массив для этого специфика c data

public function leadsByMonth(ServerRequestInterface $request): HttpResponseInterface
    {
        $params = $request->getQueryParams() ?? [];
        $result = null;
        $dates = $this->getDates($params);
        $datesFromRange = $this->getDatesFromRange($params['formatType'], $dates);
        $queryBuilder = $this->entityManager->getRepository(Lead::class)->createQueryBuilder('lead');
        $expr = $queryBuilder->expr();
        $selectQuery = '';
        $rootAlias = $queryBuilder->getRootAliases()[0];
        if (isset($params['filterType'])) {
                $selectQuery .= $rootAlias.'.'.$params['filterType'];
                $selectQuery .= ',';
        }
        $groupByQuery = $selectQuery;
        $selectQuery .= 'count(lead.id)';
        $format = null;
        foreach ($datesFromRange as $date) {
            $startDate = $date['startDate'];
            $endDate = $date['endDate'];
            $queryBuilder->select(sprintf('%s', $selectQuery))
                ->where($expr->andX(
                    $expr->gte('lead.dateCreated', $expr->literal($startDate->format('c'))),
                    $expr->lt('lead.dateCreated', $expr->literal($endDate->format('c')))
                ));
                $queryBuilder->groupBy(sprintf('lead.%s', $params['filterType']));

              $result[] = $leads = $queryBuilder->getQuery()->getScalarResult();

//              dump($result);

            //            $result[] = ['count' => $leads[0]['1'], $params['formatType'] => 'month' === $params['formatType'] ? $startDate->format('F')
//                : $startDate->format('Y-m-d'), ];
//            dump($leads);
        }
        return new JsonResponse($result);

, и в настоящее время в ответ я получаю это

[
    [
        {
            "status": "NEW",
            "1": 597
        },
        {
            "status": "CONVERTED",
            "1": 37
        }
    ],
    [
        {
            "status": "NEW",
            "1": 365
        },
        {
            "status": "CONVERTED",
            "1": 255
        }
    ],
    [
        {
            "status": "CONVERTED",
            "1": 22
        },
        {
            "status": "NEW",
            "1": 54
        }
    ],
    [],
    []
]

теперь каждый из этих объектов создается в дату, у меня есть дата в переменной $ startDate, но я не могу понять, как передать их startDate внутри каждого объекта, извините, если я использовал какой-то неправильный термин. И я хотел бы изменить имя ключа с 1 на счет. Я буду очень благодарен, если кто-то может помочь мне здесь.

i am expecting like this

 [
        [
            {
                "status": "NEW",
                "1": 597,
                "format": 2019-12-29 
            },
            {
                "status": "CONVERTED",
                "1": 37,
                "format: 2019-12-30
            }
        ],
        [
            {
                "status": "NEW",
                "1": 365,
                "format":2019-12-31
            },
            {
                "status": "CONVERTED",
                "1": 255,
                "format": 2020-01-01
            }
        ],
        [
            {
                "status": "CONVERTED",
                "1": 22,
                "format": 2020-01-02
            },
            {
                "status": "NEW",
                "1": 54,
                "format": 2020-01-03
            }
        ],
        [],
        []
    ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...