我正在mysql中创建组织表。
该实体称为Organisation
,它具有一个password
字段。
当我尝试使用UserPasswordEncoderInterface
时,它期望使用user
实体,所以这不起作用。我尝试使用PasswordEncoderInterface
,但是它说该服务不存在。在这里可以做什么?
这是我的代码:
public function register(Request $request,EntityManagerInterface $entityManager,PasswordEncoderInterface $encoder)
{
$organisation = new Organisation();
$form = $this->createForm(OrganisationRegisterType::class,$organisation);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$plainPassword = $form->getData()->getPassword();
$encoded = $encoder->encodePassword($plainPassword,null);
$organisation->setPassword($encoded);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($organisation);
$entityManager->flush();
$this->addflash(
'success','Organizacija sukurta sėkmingai. Nurodytu el. paštu buvo išsiųsta prisijungimo informacija'
);
}
这是我得到的错误:
无法自动装配“ App \ Controller \ OrganisationController :: register()”的参数$ encoder:它引用接口“ Symfony \ Component \ Security \ Core \ Encoder \ PasswordEncoderInterface”,但是不存在这样的服务。您是否创建了实现此接口的类?