Symfony主义-stdClass类的对象无法转换为字符串

时间:2019-05-09 11:33:24

标签: php doctrine-orm query-builder dql symfony-3.4

我写了一些复杂的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 :(得分:0)

如果您的$ results变量是array,但无法像上面那样工作, 如下所示,

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