我提交连接表单时出现此错误(我使用的是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
我怎样才能做到这一点? 提前谢谢你
答案 0 :(得分:39)
尝试将此添加到security.yml
中的安全密钥encoders:
FOS\UserBundle\Model\UserInterface: sha512
所以它是
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
providers:
...
firewalls:
...
答案 1 :(得分:1)
您需要将此代码添加到security.yml
encoders:
# use your user class name here
App\Entity\User:
# Use native password encoder
# This value auto-selects the best possible hashing algorithm
# (i.e. Sodium when available).
algorithm: auto
我使用symfony 4.4
为我工作
答案 2 :(得分:0)