属性名称异常的Symfony4序列化器问题

我在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",

}

简直等于我实体中的属性名称,我不明白为什么首字母会变成小写而下划线会消失...


谢谢你的帮助 !


翻阅古今
浏览 186回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP