我在Symfony4上制作了REST API,因此我想使用Symfony4的默认序列化程序对我的实体进行序列化。
但是我的实体具有不寻常的属性名称,这些属性名称使序列化程序给我不好的结果。
我尝试实施NameConverterInterface,但也CamelCaseToSnakeCaseNameConverter没有取得良好的结果。
我的应用程序上的每个实体都具有这种属性,因此使用@annotation的解决方案对我无济于事
class Product implements EntityInterface
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer", name="PROD_PKEY")
*/
private $PROD_PKEY;
/**
* @ORM\Column(type="string", length=50)
*/
private $PROD_Name;
/**
* @ORM\Column(type="string", length=50)
*/
private $PROD_Code;
以及我如何使用序列化器:
$product = new Product();
$product->setPRODName("Name");
$product->setPRODCode("Code");
$json = $this->serializer->serialize($product, 'json');
$ json的内容是:
{
"pRODName": "Name",
"pRODCode": "Code",
}
但我希望是这样的:
{
"PROD_Name": "Name",
"PROD_Code": "Code",
}
简直等于我实体中的属性名称,我不明白为什么首字母会变成小写而下划线会消失...
谢谢你的帮助 !