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 \ UsersnamePasswordToken :: serialize()は文字列またはNULLを返す必要があります。

4

1 に答える 1

4

ユーザー名と等値チェックで使用するフィールドをシリアライズ/デシリアライズする必要があります。idアプリで変更できない場合を除き、プロパティをシリアル化する必要はありません。

于 2012-07-18T06:35:18.867 に答える