gpt4 book ai didi

php - 从 JsonResponse 对象内的 Doctrine 返回数据

转载 作者:行者123 更新时间:2023-12-04 03:00:19 25 4
gpt4 key购买 nike

我的问题是我想返回一些从 Doctrine 中获得的数据 JsonResponse目的。我用 QueryBuilder 获取数据, 像这样:

$qb = $this->getDoctrine()->getRepository(User::class)->createQueryBuilder('u');
$data = $qb->getQuery()->getResult();

$JSONResponse = new JsonResponse();
$JSONResponse->setData($data);

但是, JsonResponse 里面的数据看起来很空:
data: {
[],
[],
[],
[],
.....
}

有谁知道我怎样才能以这种方式正确返回数据?

最佳答案

我想你得到了 User 的数组s 使用 Doctrine 从数据库中正确获取(您可以在获取它们后使用简单的 var_dump($data) 进行检查。

但是,当您放置 User 的数组时进入JsonResponse ,这些对象将被序列化,并且由于(我猜)User 中的属性类(class)是private ,每一个的序列化只是一个空数组[] ...

您需要将一个普通的数据数组传递给 JsonResponse而不是 User 的数组s,您有几个选择:

  • 使用 $qb->getQuery()->getArrayResult() 直接得到一个普通数组而不是 User 的数组对象。
  • 制作 User类实现 JsonSerializable 接口(interface),因此您可以定义对象应如何序列化。
  • ( 推荐 ) 从 User 生成一个普通数组对象使用一些专门的序列化库,如 JMS Serializer (或手动,如果您愿意),然后将该数据放入 JsonResponse .
  • 关于php - 从 JsonResponse 对象内的 Doctrine 返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49734950/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com