1

我的控制器上有如下功能,但我需要将返回的 Json 的字段名称更改为自定义名称。

 /**
 * @Route("/exportar-prefeituras", name="exportar_prefeituras", methods={"POST"})
 */
public function ajaxExportarPrefeituras():Response
{
  $retorno = $this->getDoctrine()->getRepository(Prefeitura::class)->findAll();

  $normalizer = [new ObjectNormalizer()];
  $encoder = [new JsonEncoder()];
  $serializer = new Serializer($normalizer, $encoder);
  
  return new JsonResponse($serializer->normalize($retorno));

}

有没有办法用一些参数来做到这一点?我已经看到了一些关于创建新的 nameConverter 函数的事情,就像这样,但我想知道它是否可以以“更简单的方式”完成。

4

1 回答 1

0

我认为他们文档上的解决方案是您找到的更简单的方法。它可以在以后重复使用,否则您可以添加多个“重命名”功能。

如果您想要另一个解决方案,您可以创建一个函数来将 $retorno 复制到另一个变量并循环通过它来重命名键甚至设置值。

你可以在这里查看答案:Renaming object keys name in PHP Laravel

于 2020-11-24T04:18:27.560 回答