我想在fosuserbundle(symfony2)中创建一个新用户,但我总是得到相同的消息(我正在使用php app/console fos:user:create):

没有为帐户“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]
.

但我总是得到同样的错误......你知道如何解决这个问题吗?解决方案在这里 不适合我

感谢

有帮助吗?

解决方案

您在编码器配置中缺少自己的用户类,例如:

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
.

其他提示

for symfony 2.7+您应该使用此配置:

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

但是!您还应该具有PHP 5.5和Apache 2.4或Nginx。

编辑app / config 中的security.yml

security:
    encoders:
        AppBundle\Entity\User: bcrypt

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username
.

在主添加“注销:〜”下

对于symfony 4.x查看 https://youtu.be/qgyqwgwy9tm

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top