web-dev-qa-db-ja.com

fosUserBundle symfony2.1のアカウントにエンコーダーが設定されていません

接続フォームを送信すると、このエラーが発生します(FOSUserBundleの最新バージョンを使用しています)。

No encoder has been configured for account "MyApp\UtilisateurBundle\Entity\Utilisateur

ここに私のエンティティがあります:

    <?php
namespace MyApp\UtilisateurBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
 * @ORM\Entity
 */
class Utilisateur extends BaseUser
{
    /**
    * @ORM\Id
    * @ORM\Column(type="integer")
    * @ORM\generatedValue(strategy="AUTO")
    */
    protected $id;
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }
}

そして、これが私のapp/config/security.ymlです:

imports:
- { resource: "@MyAppFilmothequeBundle/Resources/config/security.yml" }

そしてこれが私のsrc/MyApp/FilmothequeBundle/Ressources/config/security.ymlです:

security:
providers:
    fos_userbundle:
        id: fos_user.user_manager

firewalls:
    main:
        pattern:      .*
        form_login:
            provider:       fos_userbundle
            login_path:     /myapp/login
            use_forward:    false
            check_path:     /myapp/login_check
            failure_path:   null
            default_target_path: /myapp
        logout:
            path:   /myapp/logout
            target: /myapp
        anonymous:    true

私はそれを行うためにこのチュートリアルに従いました: http://j-place.developpez.com/tutoriels/php/ameliorez-vos-applications-developpees-avec-symfony2/#LVI-B-1

どうすればこれを達成できますか?前もって感謝します

17
user201892

これをsecurity.ymlのセキュリティキーに追加してみてください

encoders:
        FOS\UserBundle\Model\UserInterface: sha512

っていうことは

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

    providers:
        ...

    firewalls:
        ...
45
Esben

LexikJWTAuthenticationBundle でこのエラーが発生しました。

それはわたしを助ける (config/packages/security.yaml):

security:
    encoders:
      App\Entity\User:
        algorithm: bcrypt