在Symfony 2 User类中必须序列化/反序列化哪些属性?

时间:2012-07-17 18:43:36

标签: serialization symfony doctrine-orm

Symfony 2中的serialize()deserialize()方法应包含哪些属性(及其原因)?

现在我有id字段,它只是有效,但是我想知道serialize()User的原因和目的是什么 }类。为了避免这个消息:

  

您无法从EntityUserProvider刷新用户   包含标识符。用户对象必须使用它进行序列化   由Doctrine映射的自己的标识符。

Class User implements AdvancedUserInterface, \Serializable
{
    /**
     * @return string
     */
    public function serialize()
    {
      return serialize($this->id);
    }

    /**
     * @param string $data
     */
    public function unserialize($data)
    {
      $this->id = unserialize($data);
    }
}

虽然没有实施\Serializable和所有属性protected,但我得到了:

  

的Symfony \元器件\安全\核心\认证\令牌\ UsernamePasswordToken ::序列化()   必须返回一个字符串或NULL。

1 个答案:

答案 0 :(得分:4)

您需要序列化/反序列化您在equality check中使用的用户名和字段。除非可以在您的应用中更改,否则您无需序列化id属性。