我想在FOSUserBundle(Symfony2)中创建一个新用户,但我总是收到相同的消息(我使用的是php app/console fos:user:create
):
尚未为帐户"MyProject\UserBundle\Entity\User"配置编码器。
进口商品的顺序正确
public function registerBundles()
{
$bundles = array(
//...
new MyProjectUserBundleMyProjectUserBundle(),
new FOSUserBundleFOSUserBundle(),
);
安全文件:
security:
encoders:
SymfonyComponentSecurityCoreUserUser: plaintext
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
但我总是犯同样的错误。。。你知道怎么解决这个问题吗?这里的解决方案对我不起作用
感谢
您在编码器配置中缺少自己的用户类,例如:
security:
encoders:
SymfonyComponentSecurityCoreUserUser: plaintext
MyProjectUserBundleEntityUser: sha512
或者,您可以在FOSUserBundle界面上匹配它,如下所示:
security:
encoders:
SymfonyComponentSecurityCoreUserUser: plaintext
FOSUserBundleModelUserInterface: sha512
对于Symfony 2.7+,您应该使用以下配置:
security:
encoders:
FOSUserBundleModelUserInterface: bcrypt
但是!您还应该拥有PHP 5.5和Apache 2.4或Nginx。
在app/config 中编辑security.yml
security:
encoders:
AppBundleEntityUser: bcrypt
providers:
fos_userbundle:
id: fos_user.user_provider.username
在main下添加"logout:~"以及
有关Symfony 4.x,请参阅https://youtu.be/QgYQWGwY9tM