2012-03-09 1 views
12

mi piacerebbe creare un nuovo utente in FOSUserBundle (Symfony2), ma ho sempre ottenere lo stesso messaggio (sto usando php app/console fos:user:create):FOSUserBundle alcun encoder è stato configurato: la creazione di un nuovo utente

No l'encoder è stato configurato per l'account "MyProject \ UserBundle \ Entity \ User".

le importazioni sono nel giusto ordine

public function registerBundles() 
{ 
    $bundles = array(
     //... 
     new MyProject\UserBundle\MyProjectUserBundle(), 
     new FOS\UserBundle\FOSUserBundle(), 
    ); 

il file di protezione:

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

ma sto ottenendo sempre lo stesso errore ... Sapete come risolvere questo problema ? Il solution here non funziona per me

Grazie

risposta

38

Ti manca classe il proprio utente nella configurazione encoder, per esempio:

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 
     MyProject\UserBundle\Entity\User: sha512 

In alternativa si può abbinare sull'interfaccia FOSUserBundle in questo modo :

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 
     FOS\UserBundle\Model\UserInterface: sha512 
+0

grazie! funziona, ho anche dovuto usare 'php -c' quindi il percorso per usr> private> php.ini con' date.timezone' e infine creare l'utente. Grazie Seldaek! – Paul

1

Per Symfony 2.7 si dovrebbe utilizzare questa configurazione

security: 
encoders: 
    FOS\UserBundle\Model\UserInterface: bcrypt 

MA! dovresti anche avere php5.5 e Apache2.4/Ngnix