2011-03-10 47 views
3

我試圖從FOS爲symfony 2設置UserBundle。當創建一個新用戶時,它會得到一個沒有配置編碼器的異常。SF2 - FOS UserBundle不能創建用戶,沒有配置編碼器

如果我不設置編碼器是這樣的:

 
fos_user: 
    db_driver: orm 
    provider_key: fos_userbundle 
    class: 
     model: 
      user: Crm\MyBundle\Entity\User 
      group: FOS\UserBundle\Entity\DefaultGroup 
    encoder: 
     encode_as_base64: ~ 
     algorithm: ~ 
     iterations: ~ 

我得到一個新的異常:InvalidArgumentException。

如果我刪除了迭代和算法,新的異常消失,但是舊的「未配置編碼器」返回。

對我來說,它似乎是FOS \ UserBundle \ Security中的EncoderFactory從不使用,而是使用symfony的工廠代替。我不知道該怎麼做,因爲坦率地說,我不知道這個「編碼器工廠」是做什麼的。

沒有人能幫助上#symfony(IRC),我發現有完全相同的問題一個其他人:http://groups.google.com/group/symfony-users/browse_thread/thread/1e0f5797d9357295/d6cd0f7dfc721cbd?show_docid=d6cd0f7dfc721cbd

感謝

+0

這有助於我http://konradpodgorski.com/blog/155/how-to-no-encoder-has-been-configured-for-account/ – 2011-12-27 18:10:15

回答

5

所以,問題是,我裝我的包順序錯誤。 .. :)

如果任何人得到這個問題,確保這是registerBundles()的順序AppKernel

 
new Symfony\Bundle\SecurityBundle\SecurityBundle, 
new FOS\UserBundle\FOSUserBundle(), 
相關問題