所以我正在学习创建 API 的基础。我正在尝试使用 API 来创建新用户,但是我需要使用 symfony 来哈希密码。
我创建了一个 PasswordEncoderSubscriber 方法,该方法在将密码插入数据库之前对密码进行哈希处理。
private $encoder;
public function __construct(PasswordEncoderInterface $encoder)
{
$this->encoder = $encoder;
}
public static function getSubscribedEvents()
{
return [
KernelEvents::VIEW => ['encodePassword' => EventPriorities::PRE_WRITE]
];
}
public function encodePassword(ViewEvent $event)
{
$result = $event->getControllerResult();
$method = $event->getRequest()->getMethod();
if ($result instanceof User && $method === "POST") {
$hash = $this->encoder->encodePassword($result, $result->getPassword());
$result->setPassword($hash);
}
}
我使用来KernelEvents::View调用该函数,encodePassword然后再使用EventPriorities::PRE_WRITE.
这是我得到的错误:注意:未定义的偏移量:0。
KernelEvents::VIEW我忘记了什么吗?之后代码就中断了?
四季花海