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
Symfony 2.7以降の場合、次の構成を使用する必要があります。
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
だが!また、PHP 5.5およびApache2.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 を参照してください。