Php Symfony2-使用关系序列化对象(多个、一个…)
有人能告诉我是否可以序列化一个有关系的实体吗? json_encode已经工作,但我的对象如下所示:Php Symfony2-使用关系序列化对象(多个、一个…),php,json,symfony,serialization,entity,Php,Json,Symfony,Serialization,Entity,有人能告诉我是否可以序列化一个有关系的实体吗? json_encode已经工作,但我的对象如下所示: { "id": 1, "lot": 32, "num": "533987", "date_modification": { "date": "2015-02-17 14:24:52", "timezone_type": 3, "timezone": "Europe/Paris" }, "customer": { "id":
{
"id": 1,
"lot": 32,
"num": "533987",
"date_modification": {
"date": "2015-02-17 14:24:52",
"timezone_type": 3,
"timezone": "Europe/Paris"
},
"customer": {
"id": 1,
"lastname": "DUFRESNE",
"firstname": "CHRISTOPHE",
}
}
{
"id": 1,
"lot": 32,
"num": "533987",
"date_modification": "2015-02-17",
"customer": "DUFRESNE CHRISTOPHE",
}
}
但是我想用otu子对象序列化数据。事实上是这样的:
{
"id": 1,
"lot": 32,
"num": "533987",
"date_modification": {
"date": "2015-02-17 14:24:52",
"timezone_type": 3,
"timezone": "Europe/Paris"
},
"customer": {
"id": 1,
"lastname": "DUFRESNE",
"firstname": "CHRISTOPHE",
}
}
{
"id": 1,
"lot": 32,
"num": "533987",
"date_modification": "2015-02-17",
"customer": "DUFRESNE CHRISTOPHE",
}
}
所以我查了一下文件:
但我看不出是否有可能与许多人这样的关系合作,以及如何做到这一点
这是我的实体:
/**
* Subscription (BS)
*
* @ORM\Table(name="subscription")
* @ORM\Entity(repositoryClass="Jcd\LiteyearBundle\Entity\SubscriptionRepository")
* @ORM\HasLifecycleCallbacks
*/
class Subscription {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="lot", type="smallint")
*/
private $lot;
/**
* @var string
* @ORM\Column(name="num", type="string", length=9)
*/
private $num;
/**
* @var \DateTime
* @ORM\Column(name="date_creation", type="datetime", nullable=true)
*/
private $date_creation;
/**
* @var \DateTime
* @ORM\Column(name="date_modification", type="datetime", nullable=true)
*/
private $date_modification;
/**
* @var \DateTime
* @ORM\Column(name="date_completeness", type="datetime", nullable=true)
*/
private $date_completeness;
/**
* @var \DateTime
* @ORM\Column(name="date_reception", type="datetime", nullable=true)
*/
private $date_reception;
/**
* @var \DateTime
* @ORM\Column(name="date_signature", type="datetime", nullable=true)
*/
private $date_signature;
/**
* @var \DateTime
* @ORM\Column(name="date_entry", type="datetime", nullable=true)
*/
private $date_entry;
/**
* @var \Integer
* @ORM\Column(name="statement", type="integer", nullable=true)
*/
private $statement; // Releve du compteur
/**
* @var \Integer
* @ORM\Column(name="statement_kind", type="integer", nullable=true)
*/
private $statement_kind; // Personne qui a relevé le compteur
/**
* @var \Integer
* @ORM\Column(name="car", type="integer", nullable=true)
*/
private $car; // Consommation annuelle de reference
/**
* @var boolean
* @ORM\Column(name="pro", type="boolean", options={"default" = false}, nullable=true)
*/
private $pro;
/**
* @ORM\ManyToOne(targetEntity="Jcd\LiteyearBundle\Entity\User", cascade={"persist"}, inversedBy="adv_subscriptions")
* @ORM\JoinColumn(name="adv_id", referencedColumnName="id", nullable=true)
*/
private $adv;
/**
* @ORM\ManyToOne(targetEntity="Jcd\LiteyearBundle\Entity\User", cascade={"persist"}, inversedBy="vendor_subscriptions")
* @ORM\JoinColumn(name="vendor_id", referencedColumnName="id", nullable=true)
*/
private $vendor;
/**
* @var \Integer
* @ORM\Column(name="provider", type="integer")
*/
private $provider;
/**
* @var \Integer
* @ORM\Column(name="state", type="integer")
*/
private $state;
/**
* @var \Integer
* @ORM\Column(name="payment", type="integer")
*/
private $payment;
/**
* @var \Integer
* @ORM\Column(name="billing", type="integer")
*/
private $billing;
/**
* @var string
* @ORM\Column(name="comment", type="text", nullable=true)
*/
private $comment;
/**
* @var float
* @ORM\Column(name="wage", type="float", nullable=true)
*/
private $wage; // Anciennement Rem
/**
* @var float
* @ORM\Column(name="com", type="float", nullable=true)
*/
private $com; // Anciennement Commission
/**
* @var string
* @ORM\Column(name="offer", type="text", nullable=true)
*/
private $offer; // Anciennement Prix fixe
/**
* @var \Integer
* @ORM\Column(name="mail_kind", type="integer", nullable=true)
*/
private $mail_kind; //Anciennement Mail
/**
* @ORM\OneToMany(targetEntity="SubscriptionTrack", cascade={"persist", "remove"}, mappedBy="subscription")
*/
private $tracks;
/**
* @ORM\ManyToMany(targetEntity="SubscriptionSalary", cascade={"persist"}, mappedBy="subscriptions")
**/
private $salaries;
/**
* @ORM\OneToOne(targetEntity="Jcd\LiteyearBundle\Entity\Customer")
* @ORM\JoinColumn(name="customer_id", referencedColumnName="id")
**/
private $customer;
谢谢你的回答 实现所需功能的最简单方法是使用
JMSSerializerBundle
,它具有许多您可能想要使用的功能
试试看:实现您想要的最简单的方法是使用
JMSSerializerBundle
,它有许多您可能想要使用的功能
试试看:虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。答案为“使用
JMSSerializerBundle
”。链接只是为了不在谷歌上搜索。如果JMSSerializerBundle
的更改方式会删除OP寻求的功能或链接更改,您的答案仍然无效。在这种情况下,有人会用新的正确答案回答这个问题。如果我删除链接并编写如何安装此捆绑包的说明,在这种情况下它也将无效;-)同样,这不是唯一的答案。此链接只是为了方便移动到图书馆所在地。可以用谷歌搜索。还有许多其他链接将教您如何通过composer安装它。没有必要发布所有这些链接。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。答案为“使用JMSSerializerBundle
”。链接只是为了不在谷歌上搜索。如果JMSSerializerBundle
的更改方式会删除OP寻求的功能或链接更改,您的答案仍然无效。在这种情况下,有人会用新的正确答案回答这个问题。如果我删除链接并编写如何安装此捆绑包的说明,在这种情况下它也将无效;-)同样,这不是唯一的答案。此链接只是为了方便移动到图书馆所在地。可以用谷歌搜索。还有许多其他链接将教您如何通过composer安装它。没有必要发布所有这些链接。