6

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\Component\Security\Core\Authentication\Token\UsernamePasswordToken::serialize() 必须返回一个字符串或 NULL。

4

1 回答 1

4

您需要序列化/反序列化用户名和您在相等性检查中使用的字段。id除非可以在您的应用程序中更改,否则您不需要序列化该属性。

于 2012-07-18T06:35:18.867 回答