【发布时间】:2020-03-02 21:10:45
【问题描述】:
我正在 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”,但不存在这样的服务。您是否创建了实现此接口的类?`
【问题讨论】:
标签: php symfony symfony4 symfony-security