我需要获取 Doctrine 2 实体的数组表示。我在网上找到了这个库,我为此目的使用这个类:
https://github.com/borisguery/bgylibrary/blob/master/library/Bgy/Doctrine/EntitySerializer.php
问题是该类运行良好,但问题是与另一个实体(多对一)相关的实体的每个属性在结果数组的每个字段上都具有 null 值。
一个真实的例子:
我有实体人:
<?php
命名空间实体;
/** * @Entity(repositoryClass="Repositories\PersonRepository") */ class Person {
/**
* @Id @GeneratedValue
* @Column(type="bigint")
* @var integer
*/
protected $id;
/**
* @Column(type="string", length=32)
* @var string
*/
protected $firstname;
/**
* @Column(type="string", length=32, nullable="true")
* @var string
*/
/**
* @ManyToOne(targetEntity="Gender", cascade={"detach"})
* @JoinColumn(name="gender", referencedColumnName="id")
*/
protected $gender;
我在数据库中存储了一个人对象,其性别(id->1 和 name->Male)。当我使用此类将该人员对象转换为数组时,我得到了以下结果:
“id”:“1”,“名字”:“lh”,“中间名”:“”,“姓氏”:“kbkjbkl”,“dob”:{“日期”:“1982-05-25 00:00: 00”,“timezone_type”:3,“timezone”:“America/New_York”},“home_phone_number”:“8798798”,“work_phone_number”:“987987”,“cell_phone_number”:“987987”,“ssn”:“98798” ", "email": "kjhlkjlk", "gender": { "id": null, "name": null }, "race": { "id": null, "name": null }, "address": {“身份证”:空,“address_line1”:null,“address_line2”:null,“city”:null,“zip”:null,“state”:null },“marital_status”:{ “id”:null,“name”:null }
注意突出显示的性别值(有空值)。当它应该有 1 和男性。
我将非常感谢任何帮助。