Я работаю над приложением Symfony , и у меня есть объект User:
/**
* @ORM\Entity
* @ORM\Table(name="user")
* @Serializer\ExclusionPolicy("all")
*/
class User
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*
* @Serializer\Expose()
*/
private $id;
/**
* @var string $email
*
* @ORM\Column(name="email", type="string", length=255, unique=true)
* @Assert\NotBlank()
* @Assert\Email()
* @Serializer\Expose()
*/
private $email;
/**
* @ORM\Column(type="string", length=64)
* @Assert\NotBlank()
*/
private $password;
}
Я пытаюсь десериализовать полезную нагрузку для моего объекта следующим образом:
$data = $this->request->request->all();
$jsonContent = $this->serializer->serialize($data, 'json'); // serializing goes fine
dump($jsonContent);
{
"email":"John.Doe@domain.com",
"password":"123"
}
$object = $this->serializer->deserialize($jsonContent, User::class, 'json');
dump($object); // I'm getting null values
AppBundle\Entity\User {
-id: null
-email: null
-password: null
}
поэтому, когда я пытаюсь проверить свой объект с помощью валидатора:
$errors = $this->validator->validate($object);
проверка завершается неудачно с этим ответом:
{
"errors" :
{
"email": "This value should not be blank.",
"password": "This value should not be blank."
}
}
но при удалении этой строки @Serializer\ExclusionPolicy("all")
все работает нормально.
Я использую:
- Symfony 3.4
- jms / serializer-bundle 2.3
Как я могу решить эту проблему?