Symfony4. Как изменить данные для входа перед входом? - PullRequest
0 голосов
/ 16 мая 2019

Я хочу изменить данные для входа в систему следующим образом: $username = trim(strtolower($username));

Для этого я создал LoginSubscriber.Метод onKernelRequest вызывается перед входом в систему, но как я могу изменить там данные?Может быть, есть другие способы сделать это?

class LoginSubscriber implements EventSubscriberInterface
{

    /**
     * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event
     */
    public function onKernelRequest(GetResponseEvent $event)
    {
        dd($event->getRequest()->request->get('username'));
    }

    public static function getSubscribedEvents()
    {
        return [
            KernelEvents::REQUEST => ['onKernelRequest', 9]
        ];
    }
}

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Вы пытались установить более высокий приоритет priority: 200 для указанного прослушивателя запросов в файле конфигурации services.yml? Попробуйте выполнить команду bin / console debug: event-dispatcher, чтобы увидеть очередь выполнения

0 голосов
/ 17 мая 2019

Попробуйте обновить LoginSubscriber:

class LoginSubscriber implements EventSubscriberInterface
{

    /**
     * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event
     */
    public function onKernelRequest(GetResponseEvent $event)
    {
        $request = $event->getRequest();

        if ($request->request->has('username')) {
             $username = trim(strtolower($request->request->get('username')));
             // Update the username request value
             $request->request->set('username', $username);
        }
    }

    public static function getSubscribedEvents()
    {
        return [
            KernelEvents::REQUEST => ['onKernelRequest', 9]
        ];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...