2012-03-09 1 views
12

я хотел бы создать нового пользователя в FOSUserBundle (Symfony2), но я всегда получаю то же сообщение (я использую php app/console fos:user:create):FOSUserBundle датчик не был сконфигурирован: создание нового пользователя

Нет кодер настроен для учетной записи «MyProject \ UserBundle \ Entity \ User».

импорта в правильном порядке

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

файл безопасность:

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] 

но я всегда получаю ту же ошибку ... Вы знаете, как это исправить ? solution here не работает для меня

Благодаря

ответ

38

У вас не хватает класса вашего собственного пользователя в конфигурации кодеров, например:

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

В качестве альтернативы вы можете сопрягать его на интерфейс FOSUserBundle как так :

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

спасибо! он работает, мне также пришлось использовать 'php -c', затем путь к usr> private> php.ini с' date.timezone' и, наконец, создать пользователя. Спасибо Seldaek! – Paul

1

Для Symfony 2.7 вы должны использовать эту конфигурацию

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

НО, НО! вы также должны иметь php5.5 и Apache2.4/Ngnix