0

我有一个与该实体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实体?usernameUser

4

1 回答 1

0

实现可序列化接口并在 serialize() 方法中取消设置用户界面。

使用此接口,您可以编写自己的 serialize() 和 unserialize() 方法,这些方法将自动调用,因此您可以实现任何您想要的

于 2013-05-27T07:49:53.890 回答