Доктрина Symfony - Объект класса stdClass не может быть преобразован в строку - PullRequest
0 голосов
/ 09 мая 2019

Я написал несколько сложных API для возврата результатов от объектов stdClass в моем контроллере. Эта часть отлично работает.

Затем в своем сервисе я написал конструктор запросов, который должен ограничить результаты 6-месячным периодом. Это тоже работает, когда dump ().

Проблема возникает, когда я пытаюсь получить результаты через функцию в построителе запросов. Кидает:

Объект класса stdClass не может быть преобразован в строку.

Мой контроллер:

    $getResults = $this->getAllNames()->getContent();
    $pullResults = json_decode($getResults);
    $results = $pullResults->data->items;

    // restricted to 6 month period
    $this->get('my.service')->getDateRange($results); --->this part throws error

    $rows = [];

    $rows[] = array(
        "First Name",
        "Last Name"
    );

    foreach ($results as $row) {
        $rows[] = array(
            $row->firstName,
            $row->lastName
        );
    }

Мое обслуживание:

 public function getDateRange($results)
{
    return $this->getNamesRepository()
        ->createQueryBuilder('t')
        ->where('t.created >= :end')
        ->andWhere('t.id >= :id')
        ->setParameter('end', new \DateTime('-6 month'))
        ->setParameter('id', $results)
        ->orderBy('t.id', 'desc')
        ->getQuery()
        ->getArrayResult();
}

1 Ответ

0 голосов
/ 09 мая 2019

Если ваша переменная $ results является массивом, чем она не может работать, как указано выше, она будет выглядеть так, как показано ниже,

$qb->add('where', $qb->expr()->in('id', $results));
...