我尝试添加提供者。我做错了什么。
我有实体类,我想扩展这个类
namespace AppBundle\Service;
use AppBundle\Entity\Pracownik;
use Symfony\Component\Security\Core\User\UserInterface;
class Userek extends Pracownik implements UserInterface
{
public function getUsername()
{
return $this->getLogin();
}
public function getSalt()
{
// you *may* need a real salt depending on your encoder
// see section on salt below
return null;
}
public function getPassword()
{
return $this->getLogin();
}
public function getRoles()
{
return array('ROLE_PRACOWNIK');
}
public function eraseCredentials()
{
}
public function isSuperAdmin()
{
return false;
}
}
在security.yml中我添加
encoders:
AppBundle\Service\Userek: plaintext
providers:
pracownik_db_provider:
entity:
class: AppBundle\Service\Userek
property: login
firewalls:
main:
pattern: ^/
form_login:
provider: pracownik_db_provider
login_path: /login
check_path: /login_check
logout:
path: /logout
target: /login
当我尝试登录时,我收到了消息:
The class 'AppBundle\Service\Userek' was not found in the chain configured namespaces AppBundle\Entity, FOS\UserBundle\Model"
如果我实现Class Pracownik从实现的类中添加方法而不创建扩展Pracownik类的额外新类 - 作品
答案 0 :(得分:1)
尝试将Userek
类移到AppBundle\Entity\
文件夹,因为Doctrine希望在该文件夹Entity\
上找到模型类。
将AppBundle\Service\Userek.php
移至AppBundle\Entity\Userek.php
,如果仍然收到错误消息,请返回。
如果您希望Doctrine使用其他文件夹来存储您的模型类或实体,您可以在here或完整文档Doctrine configurations上找到一些帮助。