gpt4 book ai didi

Symfony 序列化器问题 - NotNormalizedValueException

转载 作者:行者123 更新时间:2023-12-02 10:53:08 25 4
gpt4 key购买 nike

当我在 Symfony 4.1 中使用带有 FOSRestBundle 的序列化器时遇到问题

我收到以下错误消息:

Could not normalize object of type App\Entity\Youp, no supporting normalizer found. Symfony\Component\Serializer\Exception\NotNormalizableValueException

我不明白为什么我会遇到这个问题,Symfony 的序列化器应该有一个序列化器对象,或者我错过了一些东西?

请参阅下面的我的 Controller 和我的实体:

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity(repositoryClass="App\Repository\YoupRepository")
*/
class Youp
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;

/**
* @ORM\Column(type="string", length=255)
*/
private $name;

public function getId(): ?int
{
return $this->id;
}

public function getName(): ?string
{
return $this->name;
}

public function setName(string $name): self
{
$this->name = $name;

return $this;
}
}
<小时/>
<?php 

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\View\View;
use FOS\RestBundle\Controller\Annotations as Rest;

use App\Entity\Youp;

class BidonController extends FOSRestController {

/**
* @Rest\View()
* @Rest\Get("/youps")
*/
public function getPharmacies() {
$youps = $this->getDoctrine()->getRepository(Youp::class)->findAll();
return $youps;
}
}

最佳答案

您的对象的属性是私有(private),因此序列化程序不知道如何规范化或从您的对象获取任何数据。您可以将属性设置为 public 或启用 ObjectNormalizer(它使用 PropertyAccess 组件访问私有(private)/ protected 属性)和/或 GetSetMethodNormalizer > (通过调用“getters”读取类的内容)在配置中使用以下服务定义:

services:
# [..]
Symfony\Component\Serializer\Normalizer\ObjectNormalizer:
class: Symfony\Component\Serializer\Normalizer\ObjectNormalizer
public: false
tags:
- { name: 'serializer.normalizer' }

Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer:
class: Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer
public: false
tags:
- { name: 'serializer.normalizer' }

之后清除缓存。有关序列化器组件中已包含的标准化器的更多信息可以在 documentation 中找到。

关于Symfony 序列化器问题 - NotNormalizedValueException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861597/

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