我有一个与CreditCard
实体相关的实体User
:
/**
* CreditCard
*
* @ORM\Table(name="credit_card")
* @ORM\Entity
*/
class CreditCard
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="value", type="string")
*/
protected $value;
/**
* @var User
*
* @ORM\OneToOne(targetEntity="User", mappedBy="creditCard")
*/
protected $user;
}
当我序列化CreditCard
实体时,它还会使用密码等用户数据序列化user
字段。
{{ creditCard|serialize }}
给出:
{"id":70,"value":"1721742","user":{"id":1,"username":"1721742","email":"hsz@domain.tld","enabled":true,"salt":"xxx","password":"yyy","last_login":"2013-05-27T09:18:30+0200","locked":false, ..... } }
如何阻止它仅允许序列化id
username
实体的User
,{{1}}?
答案 0 :(得分:0)
实现serializable接口并在serialize()方法中取消设置用户界面。
使用此接口,您可以编写自己的serialize()和unserialize()方法,这些方法将自动调用,因此您可以实现任何您想要的任何方法