首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有转换为json的实体列表,而是得到一个空对象数组。

没有转换为json的实体列表,而是得到一个空对象数组。
EN

Stack Overflow用户
提问于 2019-07-10 12:24:30
回答 1查看 136关注 0票数 0

我有以下代码:

代码语言:javascript
复制
public function adminListAction(Request $request)
{
    if (!$this->isGranted('ROLE_ADMIN')) {
        return new JsonResponse("Not granted");
    }

    $page = $request->query->get('page', 1);

    $criteria = new DocumentaryCriteria();
    $criteria->setStatus(DocumentaryStatus::PUBLISH);
    $criteria->setSort([
        DocumentaryOrderBy::CREATED_AT => Order::DESC
    ]);

    $qb = $this->documentaryService->getDocumentariesByCriteriaQueryBuilder($criteria);

    $adapter = new DoctrineORMAdapter($qb, false);
    $pagerfanta = new Pagerfanta($adapter);
    $pagerfanta->setMaxPerPage(12);
    $pagerfanta->setCurrentPage($page);

    $items = (array) $pagerfanta->getCurrentPageResults();

    $data = [
        'items'             => $items,
        'count_results'     => $pagerfanta->getNbResults(),
        'current_page'      => $pagerfanta->getCurrentPage(),
        'number_of_pages'   => $pagerfanta->getNbPages(),
        'next'              => ($pagerfanta->hasNextPage()) ? $pagerfanta->getNextPage() : null,
        'prev'              => ($pagerfanta->hasPreviousPage()) ? $pagerfanta->getPreviousPage() : null,
        'paginate'          => $pagerfanta->haveToPaginate(),
    ];

    return new JsonResponse($data);
}

返回以下内容,请注意空对象的数组

{“项目”:{},"count_results":9,"current_page":1,"number_of_pages":1,"next":null,"prev":null,“分页”:false }

通过这样做,我知道它们的属性不是空的:

代码语言:javascript
复制
foreach ($items as $item) {
    echo $item->getTitle();
}

//返回“纪录片1”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-10 12:31:03

这个问题很可能是您的$item对象不能被json序列化。

尝试在该类中实现JsonSerializable接口(https://www.php.net/manual/en/class.jsonserializable.php),并向item类添加如下方法:

代码语言:javascript
复制
public function jsonSerialize() {
    return [
        'title' => $this->getTitle(),
         'foo' => $this->bar(),
     ];
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56970641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档