I have an entity CreditCard
which is related to the User
entity:
/**
* 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;
}
When I serialize CreditCard
entity, it also serializes user
field with user data like password, etc.
{{ creditCard|serialize }}
gives:
{"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, ..... } }
How can I prevent it to allow serialize only id
, username
of User
entity ?
Implement the serializable interface and unset the user interface in the serialize() method.
With this interface you write your own serialize() and unserialize() methods that will be called automatically, so you can implement anything you want